• Valid Palindrome


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

    For example,
    "A man, a plan, a canal: Panama" is a palindrome.
    "race a car" is not a palindrome.

    去掉全部符号然后前后比较即可。 注意character包含字母和数字。

     1 public class Solution {
     2     public boolean isPalindrome(String s) {
     3         // Start typing your Java solution below
     4         // DO NOT write main() function
     5         s = s.toLowerCase();
     6         StringBuffer ss = new StringBuffer();
     7         for(int i = 0; i < s.length(); i ++){
     8             if((s.charAt(i) - 'a' > -1 && s.charAt(i) - 'z' < 1) || (s.charAt(i) - '0' > -1 && s.charAt(i) - '9' < 1)){
     9                 ss.append(s.charAt(i));
    10             }
    11         }
    12         for(int i = 0; i < ss.length() / 2; i ++){
    13             if(ss.charAt(i) != ss.charAt(ss.length() - 1 - i))return false;
    14         }
    15         return true;
    16     }
    17 }

     不使用额外的空间:

     1 public class Solution {
     2     public boolean isPalindrome(String s) {
     3         if(s == null) return true;
     4         s = s.toLowerCase();
     5         int i = 0, j = s.length() - 1;
     6         while(i < j){
     7             while(i < j && !(s.charAt(i) >= 'a' && s.charAt(i) <= 'z') && !(s.charAt(i) >= '0' && s.charAt(i) <= '9')) i ++;
     8             while(i < j && !(s.charAt(j) >= 'a' && s.charAt(j) <= 'z') && !(s.charAt(j) >= '0' && s.charAt(j) <= '9')) j --;
     9             if(s.charAt(i) != s.charAt(j))return false;
    10             else{i ++; j --;}
    11         }
    12         return true;
    13     }
    14 }
  • 相关阅读:
    几个关于设计的小问题
    基于建立/保持时间等的参数化时序分析
    Stratix内嵌存储器测试报告
    采用流水线技术实现8位加法器
    运算顺序引发的一系列有趣问题
    PON系统基础知识简介
    某MDU产品OMCI软件升级加速方案
    研究生期间接受的指导(二)
    研究生期间接受的指导(一)
    1063 Set Similarity (25 分)
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3313819.html
Copyright © 2020-2023  润新知