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

    态度决定行为,行为决定习惯,习惯决定性格,性格决定命运
  • 相关阅读:
    关于Windows 8 用户使用习惯调查结果
    Silverlight 可能迎来新版本
    项目总结(1)集中处理上下文
    VSS 团队 沟通
    中国程序员的迷茫?中国软件行业的悲哀?
    开始学点System.Net NameSpace的Class拉
    .Net FSO简单小结(简单到不能再简单了)
    DotNet Framework不协调的一面 ??
    几个开源项目配置信息的存储和处理的方式
    我对委托的一点理解,欢迎斧正
  • 原文地址:https://www.cnblogs.com/neversayno/p/5426849.html
Copyright © 2011-2022 走看看