来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-palindrome
难度:简单
题目
给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。
示例 1:
输入: "A man, a plan, a canal: Panama"
输出: true
示例 2:
输入: "race a car"
输出: false
正读和反读都相同的字符序列为“回文”,如“abba”、“abcba”是“回文”。"abc"这种不是。也可以说是字符串反转后和原字符串是一样的。
本题忽略字母大小写,且只考虑字母和数字字符
方法-把非字母和数字的去掉生成新字符串,全转小写后,反转。和原字符串全转小写后比对
class Solution {
func isPalindrome(_ s: String) -> Bool {
var result = false
var newS = ""
for charcter in s {
if isUsefulCharacter(charcter) {
newS.append(charcter)
}
}
if String(newS.lowercased().reversed()) == newS.lowercased() {
result = true
}
return result
}
func isUsefulCharacter(_ s:Character) -> Bool {
var result = false
if (s <= "z" && s >= "a") || (s <= "Z" && s >= "A") || (s >= "0" && s <= "9") {
result = true
}
return result
}
}
网友评论