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
}
相关文章