首页 > 试题广场 >

验证回文字符串(二)

[编程题]验证回文字符串(二)
  • 热度指数:1484 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串,请问最多删除一个的情况下,能否组成一个回文字符串。

回文字符串:正着读和反着读是一样的字符串。

数据范围:字符串长度满足 ,字符串中仅包含小写英文字母
示例1

输入

"nowwon"

输出

true
示例2

输入

"nowewon"

输出

true
示例3

输入

"noweawon"

输出

true
示例4

输入

"noowwwn"

输出

false
package main
//import "fmt"

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param str string字符串 
 * @return bool布尔型
*/
func palindrome( str string ) bool {
    i,j:=0,len(str)-1
    for i<j{
        if str[i]!=str[j]{
            if check(str[i+1:j+1])||check(str[i:j]){
                return true
            }
            return false
        }
        i++
        j--
    }
    return true
}

func check(str string)bool{
    i,j:=0,len(str)-1
    for i<j{
        if str[i]!=str[j]{
            return false
        }
        i++
        j--
    }
    return true
}

发表于 2023-03-09 10:14:44 回复(0)