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; }