LeetCode刷題實戰125:驗證迴文串

算法的重要性,我就很少說了吧,想去大廠,就必需要通過基礎知識和業務邏輯面試+算法面試。因此,爲了提升你們的算法能力,這個號後續天天帶你們作一道算法題,題目就從LeetCode上面選 !今天和你們聊的問題叫作 驗證迴文串,咱們先來看題面:https://leetcode-cn.com/problems/valid-palindrome/

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

 

Note: For the purpose of this problem, we define empty string as valid palindrome.面試

題意

給定一個字符串,驗證它是不是迴文串,只考慮字母和數字字符,能夠忽略字母的大小寫。說明:本題中,咱們將空字符串定義爲有效的迴文串。樣例

示例 1:

輸入: "A man, a plan, a canal: Panama"
輸出: true

示例 2:

輸入: "race a car"
輸出: false算法

 

解題

首先字符串中多餘的字符不在考慮的範圍之類,而若是字符串是迴文串,咱們就能夠設置雙指針,使用雙指針法,一頭一尾判斷字符是否相等,若存在不相等時輸出false。代碼以下:

public boolean isPalindrome(String s) {
   if (s.isEmpty())
       return true;

   int begin = 0;
   int end = s.length() - 1;

   char beginChar, endChar;

   while (begin <= end){
       beginChar = s.charAt(begin);
       endChar = s.charAt(end);
       if (!Character.isLetterOrDigit(beginChar)){
           begin++;
           continue;
       }
       else if (!Character.isLetterOrDigit(endChar)){
           end--;
           continue;
       }
       else {
           if (Character.toLowerCase(beginChar) != Character.toLowerCase(endChar))
               return false;
           else{
               begin++;
               end--;
           }
       }
   }

   return true;
}ide

好了,今天的文章就到這裏。

 

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

相關文章
相關標籤/搜索