LeetCode(125) 驗證回文串

2022-05-07 08:12:09 字數 974 閱讀 8477

easy!

題目描述:

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。

說明:本題中,我們將空字串定義為有效的回文串。

示例 1:

輸入: "a man, a plan, a canal: panama"

輸出: true

示例 2:

輸入: "race a car"

輸出: false

解題思路:

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

c++解法一:

1

class

solution 12}

13return

true;14

}15bool isalphanum(char &ch)

21 };

我們也可以用系統自帶的判斷是否是數母字元的判斷函式isalnum。

c++解法二:

1

class

solution 12}

13return

true;14

}15 };

對於該問題的擴充套件,還有利用manacher演算法來求解最長回文字串問題,參見

leetcode125 驗證回文串

一 問題描述 給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true 示例 2 輸入 race a car 輸出 false 二 和思路 2.分...

LeetCode125驗證回文數

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 falseclass solution def...

leetcode 125 驗證回文串

給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。說明 本題中,我們將空字串定義為有效的回文串。示例 1 輸入 a man,a plan,a canal panama 輸出 true示例 2 輸入 race a car 輸出 false注意讀題,題目中說了只考慮字母和數字...