力扣125. 驗證回文串(雙指標、內建函式)
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的回文串。
示例 1:
輸入: "a man, a plan, a canal: panama"
輸出: true
示例 2:
輸入: "race a car"
輸出: false
#include "stdafx.h"
#include #include using namespace std;
class solution
//如果遇到不是字母和數字字元,跳過
else
//只檢查字母和數字字元
if (('0' <= s[high] && s[high] <= '9') || ('a' <= s[high] && s[high] <= 'z') || ('a' <= s[high] && s[high] <= 'z'))
//如果遇到不是字母和數字字元,跳過
else
//匹配字元,忽略字母的大小寫
if (s[low] == s[high] || (('a' <= s[low] && s[low] <= 'z') &&(s[low] - s[high]) == 32) || (('a' <= s[high] && s[high] <= 'z') && ((s[high] - s[low]) == 32)))
else
}return true;
}};int main()
針對字元,c++的幾個內建函式
islower(char c) 是否為小寫字母
isuppper(char c) 是否為大寫字母
isdigit(char c) 是否為數字
isalpha(char c) 是否為字母
isalnum(char c) 是否為字母或者數字
toupper(char c) 字母小轉大
tolower(char c) 字母大轉小
LeetCode 力扣 125 驗證回文串
判斷乙個字串是否是回文串,忽略掉除了字母和數字外的字元。兩個指標,乙個指標從頭進行,乙個指標從尾部進行。依次判斷兩個指標的字元是否相等,同時要跳過非法字元。需要注意的是,兩個指標不用從頭到尾遍歷,當兩個指標相遇的時候就意味著這個字串是回文串了。還需要注意的是 a a 也就是大寫字母和小寫字母是相同的...
leetcode 125 驗證回文串(雙指標)
leetcode 125.驗證回文串 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。leetcode官方題解 篩選 遍歷字串進行一次遍歷,保留字母和數字字元,放在另乙個字串中。注意大小寫字母的轉換 使用雙指標 初始時,左右...
雙指標 LeetCode125 驗證回文串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。輸入 a man,a plan,a canal panama 輸出 true 輸入 race a car 輸出 false雙指標 class solution object d...