i007.cc

i007.cc

优先队列-降维打击

查找最长的不重复的子串,LeetCode

package main

import "fmt"

//
// 判断一个字符是否和字符串里面的元素重复
//

func DupChar(input string, ch byte) bool {
    for i := 0; i < len(input); i++ {
        if ch == input[i] {
            return true
        }
    }
    return false
}

//
// 查找最长的不重复的子串
//

func FindLongestSubStr(input string) string {
    var ret string
    for i := 0; i < len(input); i++ {
        var this_sub_str string
        for j := i + 1; j < len(input); j++ {
            if DupChar(input[i:j-1], input[j]) {
                this_sub_str = input[i:j]
                break
            }
        }

        if len(this_sub_str) > len(ret) {
            ret = this_sub_str
        }
    }

    return ret
}

func main() {
    str := "ababdcb"
    substr := FindLongestSubStr(str)
    fmt.Println(substr)
}

 

发表回复