网页制作基础教程电子工业出版社,seo外链,2015帝国cms网站,商务网站建设与管理读后感题目#xff1a;给定一个字符串#xff0c;请你找出其中不含有重复字符的 最长子串的长度。示例 1:输入: abcabcbb输出: 3解释: 因为无重复字符的最长子串是 abc#xff0c;所以其长度为 3。示例 2:输入: bbbbb输出: 1解释: 因为无重复…题目给定一个字符串请你找出其中不含有重复字符的 最长子串的长度。示例 1:输入: abcabcbb输出: 3解释: 因为无重复字符的最长子串是 abc所以其长度为 3。示例 2:输入: bbbbb输出: 1解释: 因为无重复字符的最长子串是 b所以其长度为 1。示例 3:输入: pwwkew输出: 3解释: 因为无重复字符的最长子串是 wke所以其长度为 3。请注意你的答案必须是 **子串** 的长度pwke 是一个_子序列_不是子串。基于Golang的代码实现如下func lengthOfLongestSubstring(s string) int {// 获取字符串长度l : len(s)// 单个字符直接返回if l 1 {return l}// historyMax记录历史保存的最大长度// currentMax记录当次迭代下最大长度historyMax, currentMax : 0, 0// 定义最长无重复字符串的起点下标start : 0// 存储字符的最新位置tmp : map[string]int{}for i : 1; i l; i {// 判断当前字符是否有记录if v, ok : tmp[s[i-1:i]]; ok {// 如若有记录说明发现重复字符记录当下的最长值if currentMax historyMax {historyMax currentMax}// 当次迭代后的最大长度重新计算为去掉重复字符之前的长度// 如abca新的无重复字符串为bcacurrentMax currentMax - v start 1// 删掉重复字符之前所有字符的位置记录for j : start; j v; j {delete(tmp, s[j:j1])}// 更新无重复字符串的起点下标start v} else {// 没有找到重复字符则长度1currentMax}// 永远记录当前字符的位置tmp[s[i-1:i]] i}// 返回最终的max长度if currentMax historyMax {historyMax currentMax}return historyMax}有疑问加站长微信联系(非本文作者)