版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NiQinGe/article/details/89819847
长话短说,上代码:
import "fmt" func HuiWen () { str := "1234566" //判断是否回文 for i := 0; i < len(str)/2 - 1; i ++ { if str[i] != str[len(str)-i -1] { fmt.Println("不是回文字符串") break } } str1 := "" // 获取字符串中最大的回文字符串 for i := 0; i < len(str)-1; i ++ { for j := len(str) - 1; j >= i; j -- { if len(str1) > j - i { break } if !huiwens(string(str[i:j+1])) { continue } fmt.Println("回文:", string(str[i:j+1])) if len(str1) < len(string(str[i:j+1])) { str1 = string(str[i:j+1]) } } } fmt.Println("最大回文:", str1) } func huiwens(str string) bool { //判断是否回文 for i := 0; i < len(str) - 1; i ++ { if str[i] != str[len(str)-i -1] { return false } } return true }
时间复杂度小于On3