Go与算法题:寻找最长不含有重复字符的字符串

func lenString(s string) int {
    //var Length []int
    var Length int
    var str string
    left := 0
    right := 0
    str = s[left:right]
    for ; right < len(s); right++ {
        /**
         *IndexByte函数的功能是检查字节c在s中第一次出现的位置索引;
         *如果s中第一次出现则返回-1,第二次出现则返回第二次出现的位置索
         */
        index := strings.IndexByte(str, s[right])
        //当某个字符出现第二次的时候返回当前索引加1的位置
        if index != -1 {
            left = index + 1
        }
        //字符串长度截取 left起始位置 right截止位置
        str = s[left : right+1]
        //获取到的长度如果大于先前的长度,就替换直到获取到最长字符串
        if len(str) > Length {
            Length = len(str)
        }
    }
    return Length
}
讨论数量: 2
Luson

999

3年前 评论
Alyssa (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!