题目链接:https://leetcode-cn.com/problems/valid-palindrome/
思路:两个指针前后一起遍历一遍即可。遍历的时候,碰到不是字符和数字的就跳过,是数字和字符的就判断是不是相等,不相等就不是回文串直接返回false。最后遍历完成,没出现返回false的情况,就说明是回文串,返回ture。
上代码:
class Solution {
fun isPalindrome(s: String): Boolean {
val str = s.toLowerCase()
var l = 0
var r = str.length - 1
while (l < r) {
if (!str[l].isLetterOrDigit()) {
l++
continue
}
if (!str[r].isLetterOrDigit()) {
r--
continue
}
if (str[l] == str[r]) {
l++
r--
} else {
return false
}
}
return true
}
}