回文字符串
题目描述
若一个字符串的正序与倒序相同,则称其为回文字符串;现在给定一个字符串,使用递归的方法,判断他是否是回文字符串。
输入描述
字符串,长度不超过100000;
输出描述
若是,则输出"Yes."
若不是,则输出"No."
样例输入
abcadacba
样例输出
Yes.
原来在斯坦福大学公开课:编程范式看到的经典例题,视频下架了,思路一样。
/*描述
递归解回文字 把待处理的问题变小
*/
#include<iostream>
#include<string>
using namespace std;
string s;
bool f(int L,int R){
if(L==R+1||L==R) return 1;
if(s[L]==s[R]) {
L++;R--;
//cout<<L<<" "<<R<<endl;
f(L,R);
}else return 0;
}
int main() {
cin>>s;
f(0,s.size()-1)? cout<<"YES":cout<<"NO";
return 0;
}