longestPalindrome

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

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • git使用步骤 下载git git config --global user.name "Your name"gi...
    jsnow0613阅读 491评论 0 0
  • 不知道在每个人眼里,根是什么定义,我的理解是生我养我的地方. 不知道从什么时候开始,我们每年回家的次数越来越少,也...
    DAJU阅读 404评论 0 0
  • 张旭明:我是如何从天才堕落为凡人的 我指的是足球。 昨天晚上和球友们踢开了2015年的大门——百度广分2015年第...
    隔壁村的教主阅读 203评论 0 4