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 程式碼

  1. class Solution {
  2. public boolean isPalindrome(String s) {
  3. if(s.length() == 0 || s.equals(" ")){
  4. return true;
  5. }
  6. List list = new ArrayList();
  7. boolean isAllNotAtoZ = false;
  8. for(int i = 0;i<s.length();i++){
  9. boolean isAToZStr = isAToZandNum(s.charAt(i));
  10. if(isAToZStr){
  11. isAllNotAtoZ = false;
  12. System.out.println("s.charAt(i) of = " + String.valueOf(s.charAt(i)).toLowerCase());
  13. list.add(String.valueOf(s.charAt(i)).toLowerCase());
  14. }else{
  15. isAllNotAtoZ = true;
  16. }
  17. }
  18. boolean isPalindrome = true;
  19. for(int i = 0;i<list.size();i++){
  20. if(!list.get(i).equals(list.get(list.size() - 1 - i))){
  21. System.out.println("list.get(i) of = " + list.get(i)+" ");
  22. isPalindrome = false;
  23. break;
  24. }
  25. }
  26. return isPalindrome;
  27. }
  28. public boolean isAToZandNum(char s) {
  29. for (char ch = 'a'; ch <= 'z'; ch++){
  30. String sLower = String.valueOf(s).toLowerCase();
  31. if (sLower.toLowerCase().contains(String.valueOf(ch))){
  32. return true;
  33. }
  34. }
  35. for (char ch = '0';ch <= '9';ch++){
  36. String sLower = String.valueOf(s).toLowerCase();
  37. if (sLower.toLowerCase().contains(String.valueOf(ch))){
  38. return true;
  39. }
  40. }
  41. return false;
  42. }
  43. }


 

更多 LeetCode 相關資源

 

複習程式面試書籍


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





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




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


沒有留言:

張貼留言