第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何根據(jù)地圖中的索引打印每個(gè)元素字符串及其頻率-Golang

如何根據(jù)地圖中的索引打印每個(gè)元素字符串及其頻率-Golang

Go
www說 2023-01-03 11:14:02
假設(shè)我有輸入和輸出字符串,其中輸出將是字符串中每個(gè)元素的頻率和 char 本身input := "programming"output := "p2ro2ga2min"找到不同字符的頻率后,如何根據(jù)索引打印它這是我的代碼func countFreq(s string)  {    sMap := make(map[string]int)    for _, v := range s {        sMap[string(v)]++    }    for i, v := range sMap {        fmt.Printf("%v%v", i, v)    }    // Don't know what to do next}The output of code is output: n1p1r2o1g2a1m2i1
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

這是我之前想到但剛剛開始寫作的替代方案。


它使用字符串來跟蹤符文順序,但如果速度很重要,您可以使用字符串生成器。


func countFreq(s string) {

    sMap := make(map[rune]int)

    sOut := ""


    for _, c := range s {

        sMap[c]++

        if sMap[c] == 1 {

            sOut += string(c)

        }

    }


    for _, c := range sOut {

        if sMap[c] > 1 {

            fmt.Print(sMap[c])

        }

        fmt.Printf("%c", c)

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-01-03
?
LEATH

TA貢獻(xiàn)1936條經(jīng)驗(yàn) 獲得超7個(gè)贊

您正在計(jì)算runes,因此使用 的映射map[rune]int,這樣您就可以忽略返回到 的轉(zhuǎn)換string。


地圖是無序的,因此如果您希望輸出與輸入的順序相同,則不能(不應(yīng)該)遍歷地圖。


一旦你計(jì)算了字母,再次在輸入字母上進(jìn)行范圍,并從地圖中獲取頻率,并將其刪除。如果計(jì)數(shù)大于 1,也打印該數(shù)字。


func countFreq(s string) {

    sMap := make(map[rune]int)


    for _, v := range s {

        sMap[v]++

    }


    for _, v := range s {

        count := sMap[v]

        if count == 0 {

            continue // Char already printed and removed

        }

        delete(sMap, v)

        if count > 1 {

            fmt.Print(count)

        }

        fmt.Print(string(v))

    }

}

測(cè)試它:


for _, s := range []string{"programming", "ab", "aba", "aabcdeac"} {

    fmt.Println("In:", s)

    fmt.Print("Out: ")

    countFreq(s)

    fmt.Println()

}

這將輸出(在Go Playground上嘗試):


In: programming

Out: p2ro2ga2min

In: ab

Out: ab

In: aba

Out: 2ab

In: aabcdeac

Out: 3ab2cde


查看完整回答
反對(duì) 回復(fù) 2023-01-03
  • 2 回答
  • 0 關(guān)注
  • 107 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)