給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的回文串。
示例 1:
輸入: "a man, a plan, a canal: panama"
輸出: true
示例 2:
輸入: "race a car"
輸出: false
/*
解法一:篩選和判斷
把字串轉換為全是字母,數字的字串
islower(char c) 是否為小寫字母
isupper(char c) 是否為大寫字母
isdigit(char c) 是否為數字
isalpha(char c) 是否為字母
isalnum(char c) 是否為字母或者數字
toupper(char c) 字母小轉大
tolower(char c) 字母大轉小
*/#include
using
namespace std;
//雙指標
class
solution
int i =
0, j = tmp.
size()
-1;while
(i < j)
return
true;}
};//使用語言中的字串翻轉 api 得到 sgood\textitsgood 的逆序字串 sgood_rev\textitsgood_rev
//只要這兩個字串相同,那麼 sgood\textitsgood 就是回文串。
class
solution
} string sgood_rev
(sgood.
rbegin()
, sgood.
rend()
);return sgood == sgood_rev;}}
;
力扣 驗證回文串
給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 思路 1 由於不區分大小寫,所以...
力扣 驗證回文字元 680
一 思想 1 暴力列舉 列舉出每個刪除了單個字元後的字串,並判斷是否是回文。很簡單的思想,但提交後會超時。2 貪心思想 採用雙指標判斷回文,low 0,high s.size 1,1 如果是s low s high 那麼繼續判斷 low high 2 當 s low s high 時判斷剩下的字串刪...
LeetCode 力扣 125 驗證回文串
判斷乙個字串是否是回文串,忽略掉除了字母和數字外的字元。兩個指標,乙個指標從頭進行,乙個指標從尾部進行。依次判斷兩個指標的字元是否相等,同時要跳過非法字元。需要注意的是,兩個指標不用從頭到尾遍歷,當兩個指標相遇的時候就意味著這個字串是回文串了。還需要注意的是 a a 也就是大寫字母和小寫字母是相同的...