此題是要實現該字串是否是回文,回文就是字串頭尾對稱。
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; } Listlist = 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 練習外,我也入手了這本,題庫來自真正的面試,並非摘自教科書。它們反映出頂尖公司真正會出的題目,你可以藉此做好充分準備。
需要的話可以看看,寫得很仔細。
需要的話可以看看,寫得很仔細。
沒有留言:
張貼留言