第三题 无重复字符的最长字串

开始刷题第三道,程序员开发属于一个长期过程,是需要坚持去做的事情。后面每周都会尽量分享两道自己的做题思路,希望每个程序员都可以坚持下去。

解题思路,类似于滑动窗口的方式,每次都用下一个字符跟前面的字串进行比较,是否已经存在,如果存在就重新开始。这种算是比较常见的考虑方法。

毕竟是自己写的,分享出来,可以互相学习,如有问题,可以在评论区留言哦。

func lengthOfLongestSubstring(s string) int {
	max := 1
	result := 0
	for begin := 0; begin < len(s); begin++ {
		max = 1
		for end := begin + 1; end < len(s); end++ {

			stemp := s[begin : end]
			if strings.Index(stemp, string(s[end])) != -1 {
				break
			}

			max++
		}

		if result < max {
			result = max
		}
	}

	return result
}

用时比较长,打败11%的go用户,但是内存消耗的比较小,打败98% 还不错哦。

后面如果有时间,会再次尝试优化消耗时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

it程序员-郭泽

多少都是心意,谢谢大家

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值