A string contains ‘0’ and ‘1’.You have to find out whether the string is dangerous or not. The string will be dangerous in the following two conditions.
- There are at least 7 continuous occurrences of ‘1’.
- There are at least 7 continuous occurrences of ‘0’.
Examples:
Input : 1000000001 Output : YES Explanation: It has more than 7 continuous occurrences of '0'. Input : 001001 Output : NO Explanation:String length is less the 7.
Approach: Follow the following steps:
- Find the length of the string, If the length of the string is less than 7 then print “NO” because there is no chance of 7 continuous ‘0’ or ‘1’.
- If the length of the string is exactly 7 then if anyone in ‘0’ or ‘1’ has the frequency 7 then print YES.
- If the string length is greater than 7 then iterate the complete string to find 7 continuous ‘1’ and ‘0’.
Below is the implementation of the above approach.
// CPP program to find the string is // Dangerous or not // #include <bits/stdc++.h > #include <iostream> using namespace std; // Function to find string // Dangerous or not void Dangerous(string str) { int freq[2] = { 0 }, flag = 0; // If string length less than 7 if (str.length() < 7) { cout << "NO"; } // If string length is equal to 7 if (str.length() == 7) { for (int i = 0; i < 7; i++) { freq[str[i] - '0']++; } if (freq[0] == 7 or freq[1] == 7) cout << "YES"; else cout << "NO"; } // If string length is greater then 7 else if (str.length() > 7) { for (int i = 0; i < str.length() - 6; i++) { if (str[i] == '0' and str[i + 1] == '0' and str[i + 2] == '0' and str[i + 3] == '0' and str[i + 4] == '0' and str[i + 5] == '0' and str[i + 6] == '0') { cout << "YES"; flag = 1; break; } if (str[i] == '1' and str[i + 1] == '1' and str[i + 2] == '1' and str[i + 3] == '1' and str[i + 4] == '1' and str[i + 5] == '1' and str[i + 6] == '1') { cout << "YES"; flag = 1; break; } } if (flag == 0) cout << "NO"; } } // Driver Program. int main() { string str = "1000000001"; Dangerous(str); return 0; }
Output: YES
Please write comments if you find anything incorrect. A gentle request to share this topic on your social media profile.