来了奥
没图了
描述:
假如一个字符串是对称的,则称它为回文串。例如aabaaaabaa。编写程序判断输入的字符串是否为回文串,若是则输出 Yes
,否则输出 No
。
若第一个字符与最后一个字符相等,则递归比较第二个字符和倒数第二个字符,直到比较到中间的字符。在比较途中,只要发现不相等,则该字符串不是回文串。
由上所述,定义递归函数为 IsPalindereme(str, left, right)
,递归边界为 left > right
,递归方式为IsPalindereme(str, left + 1, right - 1)
。
例:输入
aabaa
输出
Yes
#include
#include
using namespace std;
bool IsPalindereme(string str, int left, int right)
{
if(left>=right)
return true;
else
{
if(str[left]==str[right])
return IsPalindereme(str,left+1,right-1);
else
return false;
}
}
int main() {
string str;
cin >> str;
if(IsPalindereme(str,0,str.size()-1))
cout << "Yes" << endl;
else
cout << "No" << endl;
return 0;
}
自行运行
下期见