LeetCode 125 验证回文串
程序员文章站
2022-05-24 17:31:27
题目描述:方法(双指针):代码一:class Solution { public boolean isPalindrome(String s) { if(s == null){ return true; } int len = s.length(); StringBuffer sb = new StringBuffer(); for(char c : s.toCharArray()){...
题目描述:
方法(双指针):
代码一:
class Solution {
public boolean isPalindrome(String s) {
if(s == null){
return true;
}
int len = s.length();
StringBuffer sb = new StringBuffer();
for(char c : s.toCharArray()){
if(Character.isLetterOrDigit(c)){
sb.append(c);
}
}
int i = 0,j = sb.length()-1;
while(i<j){
if(Character.toLowerCase(sb.charAt(i)) != Character.toLowerCase(sb.charAt(j))){
return false;
}
i++;
j--;
}
return true;
}
}
结果;
代码二(优化,能少使用API就少使用,虽然代码简洁了很多,但是耗时一般都挺大的):
class Solution {
public boolean isPalindrome(String s) {
if(s == null){
return true;
}
String str = s.toLowerCase();
char[] ch = str.toCharArray();
int i = 0,j = ch.length - 1;
while(i < j){
if(ch[i]<'0'||(ch[i]>'9' && ch[i]<'a')||ch[i]>'z'){
i++;
continue;
}
if(ch[j]<'0'||(ch[j]>'9' && ch[j]<'a')||ch[j]>'z'){
j--;
continue;
}
if(ch[i] == ch[j]){
i++;
j--;
}else{
return false;
}
}
return true;
}
}
结果:
本文地址:https://blog.csdn.net/weixin_43752257/article/details/110245654
上一篇: 2012中国软件大会暨大数据发展与应用峰会召开在即
下一篇: 大数据时代的总统选举
推荐阅读
-
leetcode-5:Longest Palindromic Substring 最长回文子串
-
leetcode5:Longest Palindromic Substring最长回文子串
-
LeetCode 5. Longest Palindromic Substring(最长回文子串)
-
leetcode 5. Longest Palindromic Substring 回文串处理
-
【LeetCode】#5最长回文子串(Longest Palindromic Substring)
-
Leetcode 5. Longest Palindromic Substring 最长回文子串
-
leetcode 409最长回文串 双百写法
-
LeetCode 125 验证回文串
-
【Hard 递归 动态规划 回文串15】LeetCode 730. Count Different Palindromic Subsequences
-
leetcode 5.最长回文子串(中等,动态规划)