Leetcode125. 验证回文串(JAVA双指针)
Posted !0 !
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Leetcode125. 验证回文串(JAVA双指针)相关的知识,希望对你有一定的参考价值。
题目链接:https://leetcode-cn.com/problems/valid-palindrome/
解题思路
判断回文一般都是用双指针算法。这题和其他题不同的是有多余空或者符号,我们只要去掉这些多余空格和符号就行,再进行判断。
代码
class Solution {
public boolean isPalindrome(String s) {
int l = 0, r = s.length() - 1; //初始化
while (l < r) {
while (l < r && !Character.isLetterOrDigit(s.charAt(l))) //去掉左边非字母
++l;
while (l < r && !Character.isLetterOrDigit(s.charAt(r))) //去掉右边非字母
--r;
if (l < r) {
if (Character.toLowerCase(s.charAt(l)) != Character.toLowerCase(s.charAt(r))) //都转换成小写比较
return false;
++l;
--r;
}
}
return true;
}
}
复杂度分析
- 时间复杂度:O(n)
- 空间复杂度:O(1)
以上是关于Leetcode125. 验证回文串(JAVA双指针)的主要内容,如果未能解决你的问题,请参考以下文章