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;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69203.html