125. 验证回文串

作者: 花果山松鼠 | 来源:发表于2018-09-27 11:54 被阅读2次

一、题目原型:

给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。
说明:本题中,我们将空字符串定义为有效的回文串。

二、示例剖析:

 示例 1:
 输入: "A man, a plan, a canal: Panama"
 输出: true
 
 示例 2:
 输入: "race a car"
 输出: false

三、解题思路:

回文串:就是从左边数到右边,和从右边数到左边是一样的。
比如:ama
题目中说只考虑字母和数字字符,不分大小写

abcdefghijklmnopqrstuvwxyz   97~122 小写字母
ABCDEFGHIJKLMNOPQRSTUVWXYZ   65~90 大写字母
0123456789                   48~57 数字

所以我们只需要判定这一些字符的ASCII码

func isPalindrome(_ s: String) -> Bool {
    
    if s.count == 0 {
        return true
    }
    
    var chars = s.cString(using: String.Encoding.utf8)
    let count = (chars?.count)!
    var mutChars: [Int8] = []
    for i in 0..<count {
        
        if chars![i] >= 97 && chars![i] <= 122 {
            mutChars.append(chars![i])
        }else if chars![i] >= 65 && chars![i] <= 90 {
            // 将大写字母 转小写
            chars![i] = chars![i] + 32
            mutChars.append(chars![i])
        }else if chars![i] >= 48 && chars![i] <= 57 {
            mutChars.append(chars![i])
        }
    }
    
    let mutCount = mutChars.count
    var revert_mutChars: [Int8] = Array.init(repeating: 0, count: mutCount)
    for i in 0..<mutCount {
        
        revert_mutChars[i] = mutChars[mutCount - 1 - i]
    }
    
    if revert_mutChars == mutChars {
        return true
    }
    return false
}

四、小结

1.耗时44毫秒,超过78.57%的提交记录,总提交数476

相关文章

  • 关于回文问题

    回文问题的解法:双指针,栈,reverse 1. 409. 最长回文串[✔]2. 125. 验证回文串[✔]3. ...

  • leetcode面试top(11字符串)

    字符串 125. 验证回文串[https://link.zhihu.com/?target=https%3A//l...

  • LeetCode 125. 验证回文串 | Python

    125. 验证回文串 题目来源:力扣(LeetCode)https://leetcode-cn.com/probl...

  • LeetCode之验证回文串——JavaScript实现

    题目: 125. 验证回文串 描述: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小...

  • 125. 验证回文串

    内容 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符...

  • 125. 验证回文串

    一、题目原型: 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们...

  • 125. 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义...

  • 125. 验证回文串

    题目描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空...

  • 125. 验证回文串

    基本思路: Java中有自带函数来去除非字母和非数字

  • 125. 验证回文串

    给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。 说明:本题中,我们将空字符串定义...

网友评论

    本文标题:125. 验证回文串

    本文链接:https://www.haomeiwen.com/subject/oqheoftx.html