【LeetCode】回文字符串判断--go语言版本

发布时间:2022-10-24编辑:lianpenglin阅读(1151)

    回文字符串定义

    回文字符串是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文字符串。(来自百度百科)

    举个例子,比如以下字符串就为回文字符串:

    abccba

    12321

    判断回文字符串的方法很多,本文使用for循环来判断字符串是否是回文字符串,

    使用 for 循环判断的方式和上一种实现思路类似,是将字符串分隔成两半,先对比第一位和最后一位是否相等,如果相等进行下一次循环,每次给首位+1 和末尾-1,然后再进行判断,在整个循环过程中如果有一次不相等就里面返回 false,如果整个循环能顺利执行完则说明是回文字符串,直接返回 true 即可,实现代码如下:

    代码如下:

    func isHuiWen(str string) bool {
       r := []rune(str)
       for i := 0; i < len(r)-1; i++ {
          if string(r[i]) != string(r[len(r)-1-i]) {
             return false
          }
       }
       return true
    }
    
    func main() {
       fmt.Println(isHuiWen("abcba"))
       fmt.Println(isHuiWen("abcbad"))
       fmt.Println(isHuiWen("我和我"))
     
       fmt.Println(isHuiWen("abcdeffedcba"))
    }

    输出结果:

    true

    false

    true

    true


    实现回文字符串判断有很多种方法,在平时面试中,我推荐使用for循环来实现,因为它更原始、依赖的东西也很少,时间复杂度为O(n)。

标签golang LeetCode

如果对你有用打赏一下吧!

上一篇: 【LeetCode】两数相加--go语言版本

下一篇: 没有了