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

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    23.Vue技术栈开发实战-Icon组件
    shell脚本每行后面多了一个^M的原因和解决办法
    mmap概述
    camera otp介绍
    brk实现
    USB技术浅析
    带你遨游USB世界
    echarts 更换主题颜色
    Hive UDAF介绍与开发
    2020湖北高考理科第一名唐楚玥的学习方法演讲
  • 原文地址:https://www.cnblogs.com/neversayno/p/5426849.html
Copyright © 2020-2023  润新知