回文串判断

来源:互联网 发布:宁波新房成交数据 编辑:程序博客网 时间:2024/06/08 00:42

回文串就是通常我们说的,从头读到尾和从尾读到头都一样的字符串。
比如下面两个例子。
hellolleh 是回文串
helloworld 不是回文串。

判断是不是回文串的思路很简单,双指针,从两边往中间靠逐个对比。
下面是代码,考虑了奇数长度回文串和偶数长度回文串的特点,循环结束条件为i<=j,很好理解,奇数长度回文串最终的比较是最中间的同一个字符,相当于字符自身的比较。如果是回文串的话,跳出循环后必然右i>j。

#include <iostream>#include <string>using namespace std;void solve(string& str){    int i=0,j=str.size()-1;    while(i<=j)    {        if(str[i] != str[j])        {            cout<<"No!"<<endl;            break;        }        i++;        j--;    }    if(i>j) cout<<"Yes!"<<endl;}int main(){    string str;    while(cin>>str)    {        solve(str);    }    return 0;}
0 0