leetcode125验证回文串

leetcode125 Valid Palindrome

Posted by BY on April 19, 2019

前言

新的一年,好好学习。

正文

问题来源

本问题来自leetcode上的125题。

问题描述

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

示例 1:

输入: "A man, a plan, a canal: Panama"
输出: true

示例 2:

输入: "race a car"
输出: false

分析:

水题,秒切

func isPalindrome(s string) bool {
    b := make([]byte, len(s))
    j := 0
    for i := 0; i < len(s); i++ {
        if (s[i] >= 'a' && s[i] <= 'z') || (s[i] >= '0' && s[i] <= '9') {
            b[j] = s[i]
            j++
        } else if s[i] >= 'A' && s[i] <= 'Z' {
            b[j] = s[i] + 32
            j++
        }
    }
    i := 0
    j = j - 1
    for i < j {
        if b[i] != b[j] {
            return false
        }
        i++
        j--
    }
    return true
}

总结:

勤思考。
string采用index方式访问,单个存储单元可以直接赋值给byte类型。

结语

不管怎么样好好加油。