Advertisement

判断字符串是否为回文串

阅读量:
这里写图片描述
复制代码
    public class Solution {
    
     //(1)别人方法
      public static boolean isPalindrome(String s) {
            if(s.isEmpty()) return true;
            String str = s.replaceAll("\ W", ""); // 使用正则去除非字符数字的字符
            str = str.toLowerCase();
            for(int i = 0; i < str.length(); i++) {
                if(str.charAt(i) != str.charAt(str.length() - i -1)) {
                    return false;
                }
            }
            return true;
        }
      //(2)自我实现
      public boolean isPalindrome(String s) {
     if(s.isEmpty())  return true;
     s= s.replaceAll("\ W", "");
       /*  for(int i=0;i!=s.length();i++){
         if((s.charAt(i)>='A'&&s.charAt(i)<='Z')||(s.charAt(i)>='a'&&s.charAt(i)<='z')){
    
             str+=s.charAt(i);
         }
     }*/
    
      return isHuiwen(s);   
    }
    
    //判断一个字符串是否为回文
    public boolean isHuiwen(String s){
         String str=s.toLowerCase();
         int i=0;
         int j=s.length()-1;
         while(str.charAt(i)==str.charAt(j)&&i!=j)
         {
               i++;
               j--;
         }
         return i==j?true:false;
    
    }
    public static void main(String[]args){
       //System.out.println("Hello World!");
       Solution s=new Solution();
       String str="A man, a plan, a canal: Panama";
       String str2="race a car";
       String str3=""; //字符串可以为数字,字母
       System.out.println(s.isPalindrome(str));
       System.out.println(s.isPalindrome(str2));
       System.out.println(s.isPalindrome(str3));
       System.out.println(str3.length());
    }
    }

全部评论 (0)

还没有任何评论哟~