判读字符串是否为回文的两种方法

  • 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的。比如"level" 、 “aaabbaaa”

递归

    bool isPalindrome(string s, int start, int end) {
        if (start >= end)
            return true;
        if (s[start] != s[end])
            return false;
        return isPalindrome(s, start++ , end--);
    }

非递归

    bool isPalindrome(string s, int start, int end) {
        while (start <= end) {
            if (s[start++] != s[end--])
                return false;
        }
        return true;
    }

如果字符串很长的话,递归可能引起栈溢出。

posted @ 2017-06-26 15:06  清水汪汪  阅读(452)  评论(0编辑  收藏  举报