go語言學習(1)map常規使用

2021-08-21 13:34:36 字數 1157 閱讀 1719

kotlin其實學習已經有一段時間了,但是kotlin的部落格並沒有寫完,但是go已經開始了,只能先把kotlin的部落格滯後吧,等我對kotlin有了更深的了解之後會返回來把這部分部落格補全的。

雜七雜八的事情就不說了

map的操作

建立:make(map[string]int)

獲取元素:m[key]

key不存在時,獲得value型別的初始值

用value,ok:=m[key]來判斷是否存在key

用delete刪除乙個key

map的遍歷

使用range遍歷key,或者遍歷key,value對

不保證遍歷順序,如需順序,需要手動對key排序

使用len來獲取元素個數

map的key

map使用hash表,必須可以比較相等

除了slice,map,function的內建型別都可以作為key

struct型別不包括上述字段,也可以作為key

使用:尋找最長不含有重複字元的子串

思路:首先,我們起碼需要遍歷一波字串吧,這樣一來就可以知道字串裡面到底有些什麼,即都有哪些字母,這些字母各取乙個就是最長的不重複字母的子串,剩下來的就是怎麼知道每乙個字母在最長子串中對應的位置呢

哦哦,這裡還有個問題,我一直不太注意子串和子串行的區別,所以上面的想法是子串行的,下面才是子串的

對於每乙個字母x,使用lastoccured[x]來記錄他獨一無二的滿足要求的位置,當然可能最長子串不唯一

存在三種情況:

lastoccured[x]不存在,或者無需操作

lastoccured[x]>=start                       ->更新start

更新lastoccurred[x],更新maxlength

執行**:

package main

import "fmt"

//這個思想大體是確保每乙個區域性都是不重複的,那麼整體就是不重複的

func lengthofnonrepeatingsubstr(s string) int

if i-start+1 > maxlength

lastoccured[ch] = i

}return maxlength

}func main()

注意,上面**並不支援漢字

GO語言學習筆記 map 1

暑假在學go,做個記錄筆記,直接上 func main pass make map string int,3 println good的長度為 len good for name,score range score if score 85 成績大於60及格,成績大於85優秀 if v,ok scor...

Go語言學習筆記 map

學習筆記根據 無聞 go語言基礎教程 整理 package main import fmt sort func main 普通建立方式 func test1 fmt.println m map 使用make關鍵字建立 func test2 直接宣告和賦值建立 func test3 使用更簡單的方式 ...

go語言學習筆記 map

理解 map是由一組無序的鍵key值value對集合的內建型別,可以通過鍵來獲取對應的值,map和slices一樣,也是引用型別 注意 map之間不能使用 操作符來判斷 建立map 語法 map type of key type of value var mymap map string int n...