go语言中查找最长不含有重复字符的字符串算法示例代码

2023-06-01 00:00:00 示例 算法 字符串

算法:查找最长不含有重复字符的字符串


示例代码:

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
}

相关文章