在 C++ 中查找数组中是否包含与给定字符串只有一个字符不同的字符串
假设我们有一个字符串 s 和另一个字符串数组 A。我们必须找到数组中是否包含一个与当前字符串只有一个字符不同的字符串(长度可以不同)。例如,字符串是“banana”,数组是 [“bana”, “orange”, “banaba”, “banapy”],结果将为真,因为存在字符串“banaba”,它与“banana”只有一个字符不同。
为了解决这个问题,我们将遵循以下步骤:
遍历给定的字符串 s,并检查数组中的每个字符串,然后对 arr 中的每个字符串执行以下步骤:
检查 arr 中的字符串与字符串 s 的长度是否相同。
如果长度相同,则检查是否存在单个字符不匹配,如果存在,则返回 true,否则返回 false。
示例
#include<iostream>
#include<vector>
using namespace std;
bool hasOneCharMismatch(vector<string>arr, string s) {
int n = arr.size();
if (n == 0)
return false;
for (int i = 0; i < n; i++) {
if (arr[i].size() != s.size())
continue;
bool difference = false;
for (int j = 0; j < (int)arr[i].size(); j++) {
if (arr[i][j] != s[j]) {
if (!difference)
difference = true;
else {
difference = false;
break;
}
}
}
if (difference)
return true;
}
return false;
}
int main() {
vector<string> arr;
arr.push_back("bana");
arr.push_back("orange");
arr.push_back("banaba");
arr.push_back("banapy");
if(hasOneCharMismatch(arr, "banana")){
cout << "One character mismatch found";
}
else{
cout << "One character mismatch not found";
}
}输出:
One character mismatch found
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP