LeetCode-125. 验证回文串(Swift)

来源:力扣(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
    }
}

你可能感兴趣的:(LeetCode-125. 验证回文串(Swift))