每天一道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

Tags: