验证回文字符串 Ⅱ

题目描述

https://leetcode-cn.com/problems/valid-palindrome-ii/


package main

// 指针分别指向头尾
// 先判断是否相等
// 不相等左位移 是否相等
// 不相等右位移 是否相等
// 不相等 返回false
// 相等 左右各前进一位
func validPalindrome(s string) bool {
    r := s
    if len(r) == 0 || len(r) == 1 {
        return false
    }
    var left, right = 0, len(r) - 1
    for left < right {
        if r[left] == r[right] {
            left++
            right--
        } else {
            return CheckRome(s, left+1, right) || CheckRome(s, left, right-1)
        }
    }
    return true
}
func CheckRome(s string, l, r int) bool {
    for l < r {
        if s[l] == s[r] {
            l++
            r--
            continue
        }
        return false
    }
    return true
}


思路

看了题解后的方法,自己的方法一直是超限的!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。