Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Kiểm tra mảng có chứa chuỗi khác một ký tự hay không bằng C++


Cho một chuỗi s và một mảng các chuỗi A. Cần tìm xem mảng có chứa chuỗi nào khác với s đúng một ký tự (cùng độ dài) hay không. Ví dụ s = "banana", mảng ["bana", "orange", "banaba", "banapy"], kết quả true vì "banaba" chỉ khác một ký tự so với "banana".

Các bước giải quyết:

  • Duyệt chuỗi s, kiểm tra từng chuỗi trong mảng:

    • Kiểm tra chuỗi trong mảng có cùng độ dài với s không

    • Nếu cùng độ dài, kiểm tra có đúng một ký tự khác nhau hay không, nếu có trả về true, ngược lại false.

Ví dụ

#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";    } }

Kết quả

One character mismatch found