每天一道leetcode-125驗證迴文串
- 2019 年 10 月 4 日
- 筆記
昨天的題解
題目
每天一道leetcode-125驗證迴文串 分類:雙指針
題目詳述
給定一個字元串,驗證它是否是迴文串,只考慮字母和數字字元,可以忽略字母的大小寫。
說明:本題中,我們將空字元串定義為有效的迴文串。
示例 1:
輸入: "A man, a plan, a canal: Panama" 輸出: true 示例 2:
輸入: "race a car" 輸出: false
題目詳解
思路
- 首先把字母變成小寫,然後利用ASC碼把數字和小寫字母找到,並加到新的字元串中
- 然後對於這個新的字元串,一個指針在前,一個指針在後,依次比較兩者是否相等;
程式碼(先發圖片,再放程式碼,測試一下,看看會不會亂碼)

class Solution { public boolean isPalindrome(String s) { s = s.toLowerCase(); char [] charArray = s.toCharArray(); String temp = ""; for(int i=;i<charArray.length;i++) { if( ((int)charArray[i] >= && (int)charArray[i] <= ) || ((int)charArray[i] >= && (int)charArray[i] <= )) { temp += charArray[i]; } } char [] resultArray = temp.toCharArray(); int begin = ;int end = resultArray.length - ; while(begin < end) { if(resultArray[begin] == resultArray[end]) { begin++; end--; }else{ return false; } } return true; } } 程式碼講解
- 3-4變小寫,字元串變字元數組
- 6-12行 利用ASC碼找到數字和小寫字母的字元,加到新的字元串temp;
- 15-24一個從頭開始一個從尾巴開始,比較是否相等,不相等直接返回falas,都相等true