Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 하나의 불일치가 있는 문자열이 배열에 포함되어 있는지 확인

<시간/>

문자열 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