[编程之美-06]字符串回文判断

来源:互联网 发布:网络诈骗案证据不足 编辑:程序博客网 时间:2024/05/21 22:30

[版权说明]
编程之美系列算法题集参考:
左程云 著《程序员代码面试指南IT名企算法与数据结构题目最优解》
July 著《编程之法面试和算法心得》
何海涛 著《剑指offer》
微软编程之美小组 著《编程之美》
部分题目摘选PAT、HDOJ、POJ以及各大互联网公司Google,BAT等面试题集。

博主采用C/C++语言实现(有些题目的解法进行优化)。希望编程之美系列博文没有侵犯版权!(若侵权,请联系我,邮箱:1511082629@nbu.edu.cn )
欢迎大家转载分享,编程之美系列算法题集,会不定期更新。鉴于博主本人水平有限,如有问题。恳请批评指正!

[Problem Description]
给定一个字符串,如何判断这个字符串是否是回文串?

[Sample Input]
ABBCBBA
ABCA
ABBA

[Sample Output]
ture
false
true

基本解法:这道面试题解法很清晰,只有两种基本解法,一种是从中间往两边扫描判断;另外一种是从两边往中间扫描判断。没有更高效的解法了。

代码如下:

#include<iostream>#include<string>using namespace std;bool isPalindrome(string str);int main(){    string str;    cin>>str;    if(isPalindrome(str))        cout<< "true" << endl;    else        cout<< "false" << endl;    return 0;}bool isPalindrome(string str){    if(str.length() == 0)        return false;    int front = 0, back = str.length()-1;    while(front < back)    {        if(str[front] != str[back])            return false;        front ++;        back --;    }    return true;}
0 0
原创粉丝点击