LeetCode—125. Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.


本题为检测一个字符串是否回文,注意非数字和字母不算在内,直接跳过,且忽略大小写不同。

解法:设定两个指针,分别指向左字符、右字符,遇到非数字字母设置while()函数跳过,且大小写进行统一化。

易错点:

1、在定位左右字符时,要注意while()条件要设置为左字符位置小于右字符,否则“,。”类型会误判。

2、判断是否为字母或数字:islnum()函数

3、将大小写字母统一化为大写字母:toupper()函数


bool isPalindrome(string s) {

        if(s.size()==0) return true;

        for(int i=0,j=s.size()-1; i<j; i++,j--){

            while(!isalnum(s[i]) && i<j) i++;

            while(!isalnum(s[j]) && i<j) j--;

            if(toupper(s[i])!=toupper(s[j])) return false;

        }

        return true;

    }

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容