“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
有两个字符串A,B,将字符串B插入字符串A使产生的字符串是一个回文串。请问有多少方法,可以使新串是一个回文串。
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
- 在A的第一个字母之前: “baba” 不是回文
- 在第一个字母‘a’之后: “abba” 是回文
- 在字母‘b’之后: “abba” 是回文
- 在第二个字母’a’之后 “abab” 不是回文
所以满足条件的答案为2
bool Ishui(string str){
int i;
int size = str.size();
for (i = 0; i < size; i++){
if (str[i] != str[size - 1 - i]){
return false;
}
}
return true;
}
int main(){
string A;
string B;
string tmp;
cin >> A >> B;
int i, j, count = 0;
for (i = 0; i < A.size() + 1; i++){
tmp = A;
A.insert(i, B);
if (Ishui(A)){
count++;
}
A = tmp;
}
cout << count;
system("pause");
return 0;
}