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

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获
    js进阶 12-1 jquery的鼠标事件有哪些
    css3-11 如何实现2D动画
    ECLIPSE IDEA 调音 1
    vim note(3)
    SyntaxHighlighter代码高亮插件
    POI使用汇总
    C和指针 (pointers on C)——第三章——数据
    写了一个初中同学——为了有效地完成现有的知识积累
    [DB][mybatis]MyBatis mapper文件引用变量#{}与${}差异
  • 原文地址:https://www.cnblogs.com/neversayno/p/5426849.html
Copyright © 2011-2022 走看看