亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用C++驗證回文字符串

發布時間:2022-10-14 15:44:53 來源:億速云 閱讀:142 作者:iii 欄目:編程語言

本篇內容介紹了“怎么使用C++驗證回文字符串”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

驗證回文字符串是比較常見的問題,所謂回文,就是一個正讀和反讀都一樣的字符串,比如“level”或者“noon”等等就是回文串。但是這里,加入了空格和非字母數字的字符,增加了些難度,但其實原理還是很簡單:只需要建立兩個指針,left和right, 分別從字符的開頭和結尾處開始遍歷整個字符串,如果遇到非字母數字的字符就跳過,繼續往下找,直到找到下一個字母數字或者結束遍歷,如果遇到大寫字母,就將其轉為小寫。等左右指針都找到字母數字時,比較這兩個字符,若相等,則繼續比較下面兩個分別找到的字母數字,若不相等,直接返回false. 

時間復雜度為O(n), 代碼如下:

解法一:

class Solution {
public:
    bool isPalindrome(string s) {
        int left = 0, right = s.size() - 1 ;
        while (left < right) {
            if (!isAlphaNum(s[left])) ++left;
            else if (!isAlphaNum(s[right])) --right;
            else if ((s[left] + 32 - "a") %32 != (s[right] + 32 - "a") % 32) return false;
            else {
                ++left; --right;
            }
        }
        return true;
    }
    bool isAlphaNum(char &ch) {
        if (ch >= "a" && ch <= "z") return true;
        if (ch >= "A" && ch <= "Z") return true;
        if (ch >= "0" && ch <= "9") return true;
        return false;
    }
};

我們也可以用系統自帶的判斷是否是數母字符的判斷函數isalnum,參見代碼如下;

解法二:

class Solution {
public:
    bool isPalindrome(string s) {
        int left = 0, right = s.size() - 1 ;
        while (left < right) {
            if (!isalnum(s[left])) ++left;
            else if (!isalnum(s[right])) --right;
            else if ((s[left] + 32 - "a") %32 != (s[right] + 32 - "a") % 32) return false;
            else {
                ++left; --right;
            }
        }
        return true;
    }
};

“怎么使用C++驗證回文字符串”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

鄄城县| 江山市| 长顺县| 富平县| 贵港市| 安仁县| 临汾市| 宜川县| 静安区| 佛学| 万州区| 霍山县| 呈贡县| 河东区| 龙口市| 叶城县| 原平市| 仙居县| 庐江县| 潜山县| 吉水县| 淅川县| 云浮市| 新丰县| 保康县| 宣恩县| 栖霞市| 根河市| 区。| 应城市| 赞皇县| 铜川市| 黄石市| 舟山市| 碌曲县| 石柱| 武隆县| 荆门市| 萨迦县| 鄂托克旗| 永登县|