列表

详情


NC371. 验证回文字符串(二)

描述

给定一个字符串,请问最多删除一个的情况下,能否组成一个回文字符串。

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

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

示例1

输入:

"nowwon"

输出:

true

示例2

输入:

"nowewon"

输出:

true

示例3

输入:

"noweawon"

输出:

true

示例4

输入:

"noowwwn"

输出:

false

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

Go 解法, 执行用时: 4ms, 内存消耗: 1112KB, 提交时间: 2022-07-12

package main

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

Go 解法, 执行用时: 4ms, 内存消耗: 1232KB, 提交时间: 2022-04-10

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]{
            return false
        }
        i++
        j--
    }
    return true
}

Go 解法, 执行用时: 4ms, 内存消耗: 1244KB, 提交时间: 2022-06-02

package main
//import "fmt"

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

Go 解法, 执行用时: 4ms, 内存消耗: 1248KB, 提交时间: 2022-03-28

package main

func huiwen(str string) bool{
    for i := 0;i <len(str)/2+1;i++{
        if str[i] != str[len(str)-1-i]{
            return false
        }
    }
    return true
}
func palindrome( str string ) bool {
    // 记录比较的左右边界
    l, r := 0, len(str)-1
    for l < r{
        // 若回文
        if str[l] == str[r]{
            l++
            r--
        }else{
            // 若不为回文 删除l 删除r
            return huiwen(str[:l]+str[l+1:]) || huiwen(str[:r]+str[r+1:])
        }
    }
    return true
}

C 解法, 执行用时: 5ms, 内存消耗: 652KB, 提交时间: 2022-07-12

#include<stdbool.h>
bool palindrome(char* str ) {
    int i = 0;
    int j = strlen(str) - 1;
    int f = 1;
    while (i < j) {
        if (str[i] == str[j]) {
            ++i;
            --j;
        } else {
            if (f) {
                ++i;
                f = 0;
            } else {
                return false;
            }
        }
    }
    return true;
}

上一题