使用golang语言判断字符串是否回文,如果不是找出最大回文

版权声明:本文为博主原创文章,未经博主允许不得转载。 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

猜你喜欢

转载自blog.csdn.net/NiQinGe/article/details/89819847