func longestPalindrome(s string) string {
var list []rune
for _,v := range s{
list = append(list,v)
}
var res [][]int
for k,_ := range list{
startKey := k
endKey := k
for i:=0;;i++ {
if k - i >= 0 && k + i < len(list) {
if list[k - i] == list[k + i] {
startKey = k - i
endKey = k + i
continue
}
}
break
}
tmp := []int{startKey,endKey}
res = append(res,tmp)
startKey2 := k
endKey2 := k
for i:=0;;i++ {
if k - i >= 0 && k + i+1 < len(list) {
if list[k - i] == list[k + i+1] {
startKey2 = k - i
endKey2 = k + i+1
continue
}
}
break
}
tmp = []int{startKey2,endKey2}
res = append(res,tmp)
}
max := 1
var maxRes string
for _,v := range res {
if len(maxRes) == 0{
maxRes = string(list[v[0]:v[1]+1])
}
if v[1]-v[0]+1>max{
max = v[1]-v[0]+1
maxRes = string(list[v[0]:v[1]+1])
}
}
return maxRes
}
longestPalindrome
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。