输入字符串A,B,且字符串只包含小写字母
例如:
A = “aba”,B = “b”。这里有4种把B插入A的办法:
* 在A的第一个字母之前: "baba" 不是回文
* 在第一个字母‘a’之后: "abba" 是回文
* 在字母‘b’之后: "abba" 是回文
* 在第二个字母'a'之后 "abab" 不是回文
所以满足条件的答案为2
#include <string>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
bool isabv(string str)
{
for (int i = 0; i < str.size(); i++)
{
if (!(str.at(i) >= 'a' && str.at(i) <= 'z'))
{
return false;
}
}
return true;
}
int main()
{
string strA;
string strB;
while (1)
{
cin >> strA >> strB;
if (isabv(strA) && isabv(strB))
{
int num = 0;//计算符合回文的个数
for (int i = 0; i <= strA.size(); i++)
{
string strC = strA.substr(0, i) + strB + strA.substr(i, strA.size() - i);
string strD(strC.rbegin(), strC.rend());
//判定是否回文
if (strC == strD)
{
num++;
}
}
cout << num << endl;
}
else
{
cout << "只能包含小写字母" << endl;
}
}
system("pause");
return 0;
}