leetcode-125.验证回文串

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IoT_fast/article/details/85048332

描述

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。

说明:本题中,我们将空字符串定义为有效的回文串。

示例 1:

输入: “A man, a plan, a canal: Panama”
输出: true

示例 2:

输入: “race a car”
输出: false

源码

class Solution {
      private boolean isAlphanumberic(char c) {
        if((c>='0'&&c<='9')||(c>='a'&&c<='z')
          ||(c>='A'&&c<='Z'))
            return true;
        else return false;
    }
    
    private char tolower(char c){
        if(c>='A'&&c<='Z') c+=32;
        return c;
    }
    
    public boolean isPalindrome(String s) {
        if(s==null||s.length()==0){
            return true;
        }
        int i=0,j=s.length()-1;
        while(i<j){
            while(i<j&&!isAlphanumberic(s.charAt(i))) i++;
            while(i<j&&!isAlphanumberic(s.charAt(j))) j--;
            if(i<j&&tolower(s.charAt(i))!=tolower(s.charAt(j))){
               return false; 
            }
            i++;
            j--;
        }
        return true;
    }
}

猜你喜欢

转载自blog.csdn.net/IoT_fast/article/details/85048332