首页 > 其他 > 详细

Go map例题

时间:2018-07-21 13:40:57      阅读:41      评论:0      收藏:0      [点我收藏+]

标签:print   map   style   for   key   无需   pack   abd   main   

 1 package main
 2 
 3 import "fmt"
 4 
 5 //map例题
 6 //寻找最长不含有重复字符的子串
 7 // abcabcbb  -> abc
 8 //pwwkew ->wke
 9 //对每一个字母x:
10 //   lastOccurred[x]不存在,或者< start -> 无需操作
11 //   lastOccurred[x] >= start -> 更新start
12 //   更新lastOccurred[x],更新maxLength
13 
14 func lengthOfNonRepeatinggSubStr( s string ) int {
15     lastOccurred := make( map[byte]int)
16     start := 0
17     maxLength := 0
18 
19     for i, ch := range  []byte(s) {
20         println(i)
21         lastI ,ok := lastOccurred[ch]  //ok判断有没有key
22         if ok && lastI >= start{
23             start = lastI + 1
24         }
25         if i - start + 1 > maxLength{
26             maxLength = i - start + 1
27         }
28         lastOccurred[ch] = i
29     }
30     return  maxLength
31 }
32 func main() {
33     fmt.Println(lengthOfNonRepeatinggSubStr( "abcabccc"))  //3
34     fmt.Println(lengthOfNonRepeatinggSubStr( "abcabdefgh"))  //6
35 
36 }

 

Go map例题

标签:print   map   style   for   key   无需   pack   abd   main   

原文:https://www.cnblogs.com/yuxiaoba/p/9346107.html

(0)
(0)
   
举报
评论 一句话评论(0
0条  
登录后才能评论!
© 2014 bubuko.com 版权所有 鲁ICP备09046678号-4
打开技术之扣,分享程序人生!
             

鲁公网安备 37021202000002号