2020年4月13日 星期一

[LeetCode] 125. Valid Palindrome 解題思路 (Easy)



此題是要實現該字串是否是回文,回文就是字串頭尾對稱。




LeetCode 題目連結

 

https://leetcode.com/problems/valid-palindrome/

 

題目


Given a string, determine if it is a palindrome, considering only alphanumeric characters and ignoring cases.
Note: For the purpose of this problem, we define empty string as valid palindrome.
Example 1:
Input: "A man, a plan, a canal: Panama"
Output: true
Example 2:
Input: "race a car"
Output: false

Accept 作法

基本上要檢查一些極端例子,不然會錯。


Runtime: 234 ms
Memory: 45.7 MB

Java 程式碼

class Solution {
    public boolean isPalindrome(String s) {
        if(s.length() == 0 || s.equals(" ")){
            return true;
        }
       
        
        List list = new ArrayList();
        
        boolean isAllNotAtoZ = false;
        for(int i = 0;i<s.length();i++){
            boolean isAToZStr = isAToZandNum(s.charAt(i));
            if(isAToZStr){
                isAllNotAtoZ = false;
                System.out.println("s.charAt(i) of = " + String.valueOf(s.charAt(i)).toLowerCase());
                list.add(String.valueOf(s.charAt(i)).toLowerCase());
            }else{
                isAllNotAtoZ = true;
            }
        }
        
     
        
        boolean isPalindrome = true;
        for(int i = 0;i<list.size();i++){
            if(!list.get(i).equals(list.get(list.size() - 1 - i))){
                 System.out.println("list.get(i) of = " + list.get(i)+"  ");
                isPalindrome = false;
                break;
            }
        }
        return isPalindrome;
    }
    
    
    public boolean isAToZandNum(char s) {
         for (char ch = 'a'; ch <= 'z'; ch++){
            String sLower = String.valueOf(s).toLowerCase();
            if (sLower.toLowerCase().contains(String.valueOf(ch))){
                return true;
            }
        }
        
        for (char ch = '0';ch <= '9';ch++){
            String sLower = String.valueOf(s).toLowerCase();
            if (sLower.toLowerCase().contains(String.valueOf(ch))){
                return true;
            }
        }
        return false;
    }
}



 

更多 LeetCode 相關資源

 

複習程式面試書籍


除了 LeetCode 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備
需要的話可以看看,寫得很仔細。





書名:提升程式設計師的面試力:189道面試題目與解答




相關 LeetCode文章一律會放在 程式解題 標籤分類,歡迎持續追蹤。


沒有留言:

張貼留言