5.go 650 B

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