“回文”就是从左往右看和从右往左看是一样的字符串。
1.判断回文字符串
1) 递归,回文字符串取出首尾的两个字符剩下的依然是回文串,当个数为奇数时最后剩下一个字符,当个数位偶数时剩下零个字符,一个或零个必然是回文串。
<pre name="code" class="cpp">#include <iostream>
using namespace std;
#include <cstring>
bool isPalindrome(int begin,int end,char str[],int length){
if(length==0||length==1)
return true;
if(str[begin]!=str[end])
return false;
return isPalindrome(begin+1,end-1,str,length-2);
}
int main(){
char str[100];
cin.getline(str,100);
if(isPalindrome(0,strlen(str)-1,str,strlen(str)))
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
return 0;
}
2) 利用回文串首尾字符一样。
<pre name="code" class="cpp">#include <iostream>
using namespace std;
#include <cstring>
bool isPalindrome(char str[],int length){
for(int i=0;i<length/2;i++)
if(str[i]!=str[length-1-i])
return false;
return true;
}
int main(){
char str[100];
cin.getline(str,100);
if(isPalindrome(str,strlen(str)))
cout<<"yes"<<endl;
else
cout<<"no"<<endl;
return 0;
}