문자열 s와 문자열 A의 또 다른 배열이 있다고 가정합니다. 배열에 길이가 다른 현재 문자열과 한 문자 차이가 있는 문자열이 포함되어 있는지 확인해야 합니다. 문자열이 "banana"이고 배열이 ["bana", "orange", "banaba", "banapy"]와 같다고 가정합니다. 바나나와는 다릅니다.
이 문제를 해결하기 위해 몇 가지 단계를 따를 것입니다 -
-
주어진 문자열 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