https://leetcode-cn.com/problems/valid-palindrome/
难度简单405收藏分享切换为英文接收动态反馈
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama" 输出: true 解释:"amanaplanacanalpanama" 是回文串
示例 2:
输入: "race a car" 输出: false 解释:"raceacar" 不是回文串
提示:
1 <= s.length <= 2 * 105- 字符串
s由 ASCII 字符组成
通过次数264,502提交次数558,259
class Solution {
public boolean isPalindrome(String s) {
int i=0;
int j = s.length()-1;
while(i<j)
{
while(!(s.charAt(i)>='a'&& s.charAt(i)<='z' || s.charAt(i)>='A'&& s.charAt(i)<='Z'||s.charAt(i)>='0'&& s.charAt(i)<='9'))
{
i++;
if(i>=s.length()) return true;
}
while(!(s.charAt(j)>='a'&& s.charAt(j)<='z' || s.charAt(j)>='A'&& s.charAt(j)<='Z'||s.charAt(j)>='0'&& s.charAt(j)<='9'))
{
j--;
if(j<=i) return true;
}
if(i>j) return false;
System.out.print(s.charAt(i));
System.out.print(s.charAt(j));
System.out.println();
if(!(s.charAt(i)==s.charAt(j) || (
(s.charAt(j)>='a' && s.charAt(j)<='z'||
s.charAt(j)>='A' && s.charAt(j)<='Z') &&
(s.charAt(i)>='a' && s.charAt(i)<='z'||
s.charAt(i)>='A' && s.charAt(i)<='Z') &&
s.charAt(i)==(char)(s.charAt(j)-32) )||
(
(s.charAt(j)>='a' && s.charAt(j)<='z'||
s.charAt(j)>='A' && s.charAt(j)<='Z') &&
(s.charAt(i)>='a' && s.charAt(i)<='z'||
s.charAt(i)>='A' && s.charAt(i)<='Z') &&
s.charAt(i)==(char)(s.charAt(j)+32))))
{
return false;
}
i++;
j--;
}
return true;
}
}


214

被折叠的 条评论
为什么被折叠?



