在 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