迴文字符串
題目描述
若一個字符串的正序與倒序相同,則稱其爲迴文字符串;現在給定一個字符串,使用遞歸的方法,判斷他是否是迴文字符串。
輸入描述
字符串,長度不超過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;
}