LeetCode(61)-Valid Palindrome

来源:互联网 发布:php在线升级原理 编辑:程序博客网 时间:2024/06/01 10:17

题目:

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.

思路:

  • 题意:判断一个字符串是不是回文
  • 这道题可以采用双指针,开头first,结尾sed,first++,sed–,first < sed
  • 要求不考虑大小写,全部转化为大写,同时判断字符是不是字母和数字,‘A’,‘Z’,‘0’,‘9’

代码:

public class Solution {    public boolean isPalindrome(String s) {        if(s == null){            return true;        }        char A = 'A';        char Z = 'Z';        char numMin = '0';        char numMax = '9';        s = s.toUpperCase();        int first  = 0;        int sed = s.length() - 1;        while(first < sed){            if((s.charAt(first) < A||s.charAt(first) > Z) && (s.charAt(first) < numMin||s.charAt(first) > numMax)){                first++;                continue;            }            if((s.charAt(sed) < A||s.charAt(sed) > Z) && (s.charAt(sed) < numMin||s.charAt(sed) > numMax)){                sed--;                continue;            }            if(s.charAt(first) == s.charAt(sed)){                first++;                sed--;            }else{                return false;            }        }        return true;    }}
0 0
原创粉丝点击