# Break a Palindrome in C++

## Break a Palindrome in C++

Given a palindromic string of lowercase English letters `palindrome`, replace exactly one character with any lowercase English letter so that the resulting string is not a palindrome and that it is the lexicographically smallest one possible.

Return the resulting string. If there is no way to replace a character to make it not a palindrome, return an empty string.

A string `a` is lexicographically smaller than a string `b` (of the same length) if in the first position where `a` and `b` differ, `a` has a character strictly smaller than the corresponding character in `b`. For example, `"abcc"` is lexicographically smaller than `"abcd"` because the first position they differ is at the fourth character, and `'c'` is smaller than `'d'`.

Example 1:

```Input: palindrome = "abccba"
Output: "aaccba"
Explanation: There are many ways to make "abccba" not a palindrome, such as "zbccba", "aaccba", and "abacba".
Of all the ways, "aaccba" is the lexicographically smallest.
```

Example 2:

```Input: palindrome = "a"
Output: ""
Explanation: There is no way to replace a single character to make "a" not a palindrome, so return an empty string.
```

Example 3:

```Input: palindrome = "aa"
Output: "ab"```

Example 4:

```Input: palindrome = "aba"
Output: "abb"
```

Constraints:

• `1 <= palindrome.length <= 1000`
• `palindrome` consists of only lowercase English letters.

### The solution to the above Question

class Solution {
public:

string check(string s){
bool flag=true;
if(flag){
s.erase(s.end()-1);
s=s+"b";
return s;
}
else{
return s;
}
return s;

}

string breakPalindrome(string s) {
if(s.length()==1){
return "";
}
else if(s[0]!='a'){
string ans="a";
s.erase(s.begin());
ans=ans+s;
return ans;
}
else {
int t=0;
for(int i=0; i<s.length(); i++){
if(s[i]=='a'){
t++;
}
}
cout<<t;
if(t==s.length()-1){
return check(s);
}
int i=0;
while(s[i]=='a'){
i++;
}
if(i!=s.length()){
string str="a";
s.replace(i,1,str);
}
else{
string str="b";
s.replace(i-1,1,str);
}
return s;
}
return "";
}
};