leetcode 125. Valid Palindrome

Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.

For example,
"A man, a plan, a canal: Panama" is a palindrome.

"race a car" is not a palindrome.


題目要求: 給定一個字符串,只考慮數字和字母,忽略大小寫,判斷其是否是迴文。所謂的迴文數是指倒讀和順讀的順序是一樣。


看到這道題的第一反應就是將字符串中的所有空格和標點符號去掉,處理大小寫之後,依次比較字符串的首部和尾部。

嘗試這種做法之後,發現有些特殊的字符無法去除,造成了錯誤的結果判斷,於是調用了Character.isLetterOrDigit方法,只有當首部和尾部的字符均是數字或者字母 時才進行判斷,否則一直遍歷下去。


運行時間爲42ms, 代碼如下:



經過嘗試發現,如果註釋掉代碼中的去除空格和標點符號等操作,代碼的運行效率更高。新的代碼如下所示:




發佈了36 篇原創文章 · 獲贊 1 · 訪問量 9540
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章