Day3

题目

计算出给定字符串中的最长子串长度

思路

  • 使用一个map结构存储每个字符上一次出现的坐标,然后设置一个start变量用来定位最长子串的开头,如果字符上一次出现的坐标大于start即重复字符出现了,更改start重新计算长度

实现

func findLongestStr(str string){
    start := 0 
    maxLength := 0
    lastShowIndex := make(map[byte] int)
    for i,ch := range [] byte(str) {
        if lastI,ok := lastShowIndex[ch];ok&&lastI >=start{
                start = i+1
            }
      if i-start+1>maxLength{
          maxLength  = i-start+1        
}
          lastShowIndex[ch] = i
    }
          return maxLength
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.数据存储形式 计算机以二进制的形式存储 (1).原码:数据的二进制形式 10 --> 1010 原码:0000...
    Deathfeeling阅读 369评论 0 3
  • 1.什么是字符串 a.使用单引号或者双引号括起来的字符集就是字符串。 b.引号中单独的符号、数字、字母等叫字符 c...
    PIECE_MAN阅读 1,603评论 0 6
  • 01.原码、反码、补码 计算机在存储数据的时候,都是以二进制的形式存储在计算机中(存一个数的补码),并且计算机只有...
    Ftr_阅读 281评论 0 1
  • 作业 在做下面的每个练习时,都编写一个独立的程序,并将其保存为名称类似于name_cases.py的文件 2-3 ...
    greencap阅读 278评论 0 0
  • 一.认识字符串 1.什么是字符串 a.用单引号或者双引号括起来的字符集就是字符串 b.字符串中的每个单独的单元叫字...
    Smilebest阅读 437评论 0 2