If a string is Palindromic

来源:互联网 发布:java 字符串分割 编辑:程序博客网 时间:2024/04/28 14:46

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.

Note:
Have you consider that the string might be empty? This is a good question to ask during an interview.

For the purpose of this problem, we define empty string as valid palindrome.

这个题相当直观,这次做的时候我直接call Java String里面的toLowerCase, 这样就不需要考录比如 ‘X’ 和 ‘x' 其实是同一个字母的问题了

public class Solution {    public boolean isPalindrome(String s) {        s = s.trim().toLowerCase();        int len = s.length();        int start = 0, end = len-1;        while(start < end){ // if it terminates with start == end, it is a palindrome: e.g. "aba"            while(start < end && !isAlphaNumeric(s.charAt(start)))      start ++;            while(start < end && !isAlphaNumeric(s.charAt(end)))     end--;            if(start == end)    break;            if(s.charAt(start) != s.charAt(end))        return false;            else{                start++;                end --;            }        }                return true;    }        public boolean isAlphaNumeric(char ch){        if(ch >= 'a' && ch <= 'z')  return true;        else if(ch <= '9' && ch >= '0')     return true;        else    return false;    }}


0 0
原创粉丝点击