Shil has a string, , consisting of lowercase English letters. In one operation, he can delete any pair of adjacent letters with same value. For example, string “” would become either “” or “” after operation.
Shil wants to reduce as much as possible. To do this, he will repeat the above operation as many times as it can be performed. Help Shil out by finding and printing ‘s non-reducible form!
Note: If the final string is empty, print .
Input Format
A single string, .
Constraints
Output Format
If the final string is empty, print ; otherwise, print the final non-reducible string.
Sample Input 0
aaabccddd
Sample Output 0
abd
Sample Input 1
baab
Sample Output 1
Empty String
Sample Input 2
aa
Sample Output 2
Empty String
Solution
#include <iostream> #include <string> using namespace std; int main() { string s; getline(cin, s); int j; for (int i = 0; i < s.length()-1; i++) { j = i + 1; if (s[i] == s[j]) { s.erase(i,2); if (s.empty()) { cout << "Empty String" << endl; break; } i = -1; } } cout << s << endl; return 0; }
Advertisements