给定一个字符串 s,你可以通过在字符串前面添加字符将其转换为回文串。找到并返回可以用这种方式转换的最短回文串。
示例 1:
输入:"aacecaaa"
输出:"aaacecaaa"
示例 2:
输入:"abcd"
输出:"dcbabcd"
class Solution {
public:
string shortestPalindrome(string s) {
string t = s;
reverse(t.begin(), t.end());
int n = s.size(), i = 0;
for (i = n; i >= 0; --i) {
if (s.substr(0, i) == t.substr(n - i,i)) {
break;
}
}
return t.substr(0, n - i) + s;
}
};