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、牢记各种方法名的大小写!!

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    ElasticSearch学习记录
    用java代码手动控制kafkaconsumer偏移量
    kafka0.9.0及0.10.0配置属性
    kafka常用命令
    kafka消费者客户端(0.9.0.1API)
    kafka入门教程链接
    编程内功
    bzoj3145:[Feyat cup 1.5]Str
    3 SpringBoot与微服务
    2 微服务存在的问题和解决方案
  • 原文地址:https://www.cnblogs.com/neversayno/p/5426849.html
Copyright © 2011-2022 走看看