zoukankan      html  css  js  c++  java
  • leetcode-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.

    代码分析

    public class Solution {
    //判断回文字符串的基本思想:从双向遍历,每一步都同时动,若有一方不符合条件,则另一方退回上位置,下个循环再同时进行
    //代码优点:1、原生函数 2、for循环遍历,两个变量
        public boolean isPalindrome(String s) {
            if(s == null)  return true;
            //两头遍历,设置结束条件 i<j
            for(int i =0 , j=s.length()-1 ; i<j ; i++,j--){
                
               char ch1 = s.charAt(i);
                if(!isNumberOrletter(ch1)){
                    j++;
                    continue;
                }
                
                char ch2 = s.charAt(j);
                if(!isNumberOrletter(ch2)){
                    i--;
                    continue;
                }
                //忽略大小写
                if(ch1>='A'&&ch1<='Z') ch1 += 32;
                if(ch2>='A'&&ch2<='Z') ch2 += 32;
                if(ch1 != ch2) return false;
            }
            return true;
        }
        //判断是否为字母或者数字
        public boolean isNumberOrletter(char ch){
            if(ch>='a'&&ch<='z' ||ch>='A'&&ch<='Z'||ch>='0'&&ch<='9')
                return true;
            return false;
        }
    }

    注意:

    1、做字符串题目时,要牢记 Integer、String、character、Array的方法!!!

    2、使用StringBuilder类去构造string

    3、牢记各种方法名的大小写!!

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    Spring学习记录(八)---Bean的生命周期
    Spring学习记录(七)---表达式语言-SpEL
    Spring学习记录(六)---使用外部属性文件
    Spring学习记录(五)---bean的作用域scope
    Spring学习记录(四)---bean之间的关系:继承、依赖
    Spring学习记录(三)---bean自动装配autowire
    Spring学习记录(二)---容器和bean属性配置
    2017.9
    Flask
    ELK
  • 原文地址:https://www.cnblogs.com/neversayno/p/5426849.html
Copyright © 2011-2022 走看看