【leetcode】125. Valid Palindrome

来源:互联网 发布:java opencv 二值化 编辑:程序博客网 时间:2024/06/09 23:45
题目要求:

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.

即给你一个字符串,只考虑字母和数字,忽略大小写,判断这个字符串是否为回文字符串

思想:首先把这个字符串全部转为大写或全部转为小写,如果字符串为空或者长度为1,直接返回true

否则,让i和j分别从字符串的左右两边向中间移动,判断在i,j位置的是不是字母或者数字,如果不是,就继续往中间找

public class Solution {    public boolean isPalindrome(String s) {         s = s.toLowerCase();         if(s==null||s.length()<=1){             return true;         }        for(int i=0,j=s.length()-1;i<j;i++,j--)        {            while(i<j&&!isAlpha(s.charAt(i)))            {                i++;            }            while(i<j&&!isAlpha(s.charAt(j)))            {                j--;            }            if(s.charAt(i)!=s.charAt(j))            {                return false;            }        }        return true;    }    public boolean isAlpha(char ch) {        if ((ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z'))        {            return true;        }else        {            return false;        }    }}


0 0
原创粉丝点击