力扣 驗證迴文串(一些實用字符串函數)

在這裏插入圖片描述

        islower(char c) 是否爲小寫字母
        isupper(char c) 是否爲大寫字母
        isdigit(char c) 是否爲數字
        isalpha(char c) 是否爲字母
        isalnum(char c) 是否爲字母或者數字
        toupper(char c) 字母小轉大
        tolower(char c) 字母大轉小
        c.begin() 返回一個迭代器,它指向容器c的第一個元素
        c.end() 返回一個迭代器,它指向容器c的最後一個元素的下一個位置
        c.rbegin() 返回一個逆序迭代器,它指向容器c的最後一個元素
        c.rend() 返回一個逆序迭代器,它指向容器c的第一個元素前面的位置
class Solution {
public:
    bool isPalindrome(string s) {
        int left=0,right=s.size()-1;
        while(left<right)
        {
            //不考慮左側的非字母非數字部分
            while(left<right&&!isalnum(s[left]))
            {
                left++;
            }
            //不考慮右側的非字母非數字部分
            while(left<right&&!isalnum(s[right]))
            {
                right--;
            }
            if(left<right)
            {
                if(tolower(s[left])!=tolower(s[right]))
                {
                    return false;
                }
                left++;
                right--;
            }
        }
        return true;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章