給定乙個字串,驗證它是否是回文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字串定義為有效的回文串。
示例 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...