5.go 663 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import (
  3. "fmt"
  4. )
  5. func longestPalindrome(s string) string {
  6. n := len(s)
  7. if n < 2 {
  8. return s
  9. }
  10. maxBeg, maxEnd := 0, -1
  11. // 暴力穷举
  12. for beg := 0; beg < n; beg++ {
  13. for end := beg; end < n; end++ {
  14. i := 0
  15. for ; end-beg > maxEnd-maxBeg && i <= end-beg; i++ {
  16. if s[beg+i] != s[end-i] {
  17. break
  18. }
  19. }
  20. if i == end-beg+1 {
  21. maxBeg = beg
  22. maxEnd = end
  23. }
  24. }
  25. }
  26. return s[maxBeg : maxEnd+1]
  27. }
  28. func main() {
  29. fmt.Println(longestPalindrome("ASDFDSAASBUGAYFUYFSDG"))
  30. fmt.Println(longestPalindrome("A"))
  31. fmt.Println(longestPalindrome(""))
  32. fmt.Println(longestPalindrome("gigiudhfafhsaoifhoifaochasiofueosanfklf"))
  33. }