5. Longest Palindromic Substring Go语言
程序员文章站
2022-03-15 22:26:41
...
Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example 1:
Input: “babad”
Output: “bab”
Note: “aba” is also a valid answer.
Example 2:
Input: “cbbd”
Output: “bb”
思路:
最长的回文字符串的长度可能是奇数也可能是偶数。则分两种情况考虑,
(1)针对奇数情况,则从当前字符的前后两个字符开始比较
(2)针对偶数情况,则从当前字符与其后一个字符开始比较
package main
import "fmt"
func main() {
s := "cbbd"
ret := longestPalindrome(s)
fmt.Println(ret)
}
func longestPalindrome(s string) string {
if (len(s) < 2){
return s
}
result := string(s[0])
for i := 0; i < len(s); i++ {
ret := getPalindrome(s, i, i) // 处理奇数情况
if (len(ret) > len(result)){
result = ret
}
ret = getPalindrome(s, i, i + 1) // 处理偶数情况
if (len(ret) > len(result)){
result = ret
}
}
return result
}
func getPalindrome(s string, beg int, end int) string {
for {
if ((beg >= 0) && (end < len(s) && (s[beg] == s[end]))){
beg--
end++
}else {
break
}
}
beg++
return s[beg : end]
}
上一篇: go语言刷题:5. 最长回文子串
下一篇: 关于typedef和#define的区别
推荐阅读
-
LeetCode-5. Longest Palindromic Substring(三种解法及Manacher算法详解)
-
【小白爬Leetcode5】最长回文子串 Longest Palindromic Substring
-
5. Go语言—数据类型
-
go语言刷题:5. 最长回文子串
-
5. Longest Palindromic Substring Go语言
-
5. (go语言)函数
-
5. Go语言基础之变量和常量
-
go语言解leetcode习题 5. Longest Palindromic Substring
-
LeetCode5-Longest Palindromic Substring(回文)
-
5. Go 语言的类型系统(Go Tutorial)