- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find if an array contains a string with one mismatch in C++
Suppose we have a string s, and another array of strings A. We have to find whether the array is containing a string with the one-character difference from the current string of different lengths. Suppose the string is like “banana”, and the array looks like [“bana”, “orange”, “banaba”, “banapy”], the result will be true, as there is one string banaba, here only one character is different than a banana.
To solve this problem, we will follow some steps −
Traverse through given string s, and check for every string in the array, then follow these steps for every string in arr −
Check if the string in arr has the same length with the string s
If the lengths are the same, then check whether there is any single character mismatch or not, if yes, then return true, otherwise false.
Example
#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"; } }
Output −
One character mismatch found