zoukankan      html  css  js  c++  java
  • 125. Valid Palindrome

    一、题目

      1、审题

      

      2、分析

        判断所给的字符串(只考虑数字、字母)是否为回文。

     二、解答

      1、思路: 

        方法一、

          用 start、end 指针分别从 s 的开头和结尾开始遍历,并进行比较。

        public boolean isPalindrome(String s) {
        
            int len = s.length();
            if(len == 0)
                return true;
            int start = 0, end = len - 1;
            while(start < end) {
                char c1 = s.charAt(start);
                char c2 = s.charAt(end);
                
                if(!Character.isLetterOrDigit(c1))
                    start++;
                else if(!Character.isLetterOrDigit(c2))
                    end--;
                else if(Character.toLowerCase(c1) == Character.toLowerCase(c2)) {
                    start++;
                    end--;
                }
                else 
                    return false;
            }
            
            return true;
        }

      方法二、

        先采用正则替换掉 s 中的非数字、字母,在翻转 s 与原串进行比较。

        public boolean isPalindrome2(String s) {
            s = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
            String tmp = new StringBuffer(s).reverse().toString();
            return s.equals(tmp);
        }
  • 相关阅读:
    Python中下划线---完全解读(转)
    数字、基数及表示
    实现二叉排序树的各种算法
    shell脚本 空格
    Linux中执行shell脚本的4种方法
    vim常用命令总结
    Linux 奇技淫巧
    排序算法之二分治法
    二分查找
    排序算法之一插入排序
  • 原文地址:https://www.cnblogs.com/skillking/p/9751452.html
Copyright © 2011-2022 走看看