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