125 驗證回文串

2021-09-30 01:46:17 字數 1309 閱讀 1784

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

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

示例 1:

輸入:

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

輸出:true

示例 2:

輸入:

"race a car"

輸出:false

因為要忽略字母的大小寫,所以先把字串轉換成小寫(或者大寫)。然後設定兩個指標,分別指向字串的首和尾,先判斷首位字元是否在考慮範圍內(字母和數字),如果至少有乙個不在範圍內,則不在範圍內的字元對應的指標要移動(首指標往後移,尾指標往前移)。如果都在範圍內,則判斷2個字元是否相同,相同,則2個指標都移動;不相同,返回false。如果一直沒返回false,則結束迴圈的條件為:首指標》=尾指標

class

solution

}else

if(lastchar >=

'a'&& lastchar <=

'z')

else

}else

if(firstchar >=

'a'&& firstchar <=

'z')

else

if(lastchar >=

'a'&& lastchar <=

'z')

}else

}else

}return

true;}

}

思路相同,但是**更加簡單(**krahets):

class

solution

return

true;}

}

先原地把除了字母和數字的字元去除,然後首尾依次判斷。(參考喬義)

此方法效率更高!

class

solution

elseif(

'a'<= cs[i]

&& cs[i]

<=

'z')

} cnt--

;while

(j < cnt)

if(cs[j++

]!= cs[cnt--])

return

false

;return

true;}

}

如有不當之處,歡迎讀者批評指標!

125 驗證回文串

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

125 驗證回文串

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

125 驗證回文串

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