首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度

示例 1:

输入: "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

Go语言实现如下(源代码):

package main

import "fmt"

import "strings"

var m=make(map[string]int)

var sl []int

func lengthOfLongestSubstring(s string) int{

//字符串先转化成数组

s1:=strings.Split(s,"")

num:=0

//先找出重复的第一个索引

for i:=0;i

for j:=i+1;j

if s1[i]==s1[j]{

sl=append(sl,i)

}

}

}

//拿到第一个重复索引index,再从index开始遍历数组

for index:=sl[0];index

if _,ok:=m[s1[index]];!ok{

m[s1[index]]++

}

}

for _,val:=range m{

num+=val

}

return num

}

func main(){

s:="pwwkew"

nums:=lengthOfLongestSubstring(s)

//输出:3

fmt.Println(nums)

}

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200210A097D600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券