亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

減少數組長度

減少數組長度

Go
蠱毒傳說 2021-08-23 17:55:35
我正在嘗試將兩個字符串數組合并為一個。結果數組應刪除所有重復元素。func MergeArrays(str1, str2 []string) []string {    c := make([]string, len(str1)+len(str2), cap(str1)+cap(str2))    k := make(map[string]bool)    for i, s := range str1 {        if _, ok := k[s]; !ok {            c[i] = s            k[s] = true        }    }    for j, s := range str2 {        if _, ok := k[s]; !ok {            c[j+len(str1)] = s            k[s] = true        }    }    return c}測試數據str1 := []string{"a", "b"}str2 := []string{"c", "d", "a"}輸出: "a", "b", "c", "d" length of the array "5"我得到了我想要的輸出,但數組的長度應該是4而不是5。我可以理解為什么它會打印5,但我想要長度為的輸出數組4。還有其他方法可以合并兩個數組。
查看完整描述

2 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

從長度為零開始,并在附加元素時加一。例如,


package main


import "fmt"


func MergeArrays(a1, a2 []string) []string {

    m := make([]string, 0, len(a1)+len(a2))

    k := make(map[string]bool, len(a1)+len(a2))

    for _, aa := range [][]string{a1, a2} {

        for _, s := range aa {

            if !k[s] {

                m = append(m, s)

                k[s] = true

            }

        }

    }

    return m

}


func main() {

    a1 := []string{"a", "b"}

    a2 := []string{"c", "d", "a"}

    m := MergeArrays(a1, a2)

    fmt.Println(len(m), m)

}

輸出:


4 [a b c d]


查看完整回答
反對 回復 2021-08-23
?
幕布斯6054654

TA貢獻1876條經驗 獲得超7個贊

它們是切片,而不是數組,這是解決您的用例的示例:


package main


import "fmt"


func MergeStringSlices(str1, str2 []string) []string {

    m := make([]string, len(str1), len(str1)+len(str2))

    copy(m, str1)

already_seen:

    for _, s := range str2 {

        for _, t := range m {

            if s == t {

                continue already_seen

            }

        }

        m = append(m, s)

    }

    return m

}


func main() {

    str1 := []string{"a", "b"}

    str2 := []string{"c", "d", "a"}

    fmt.Printf("%#v\n", MergeStringSlices(str1, str2))

}


查看完整回答
反對 回復 2021-08-23
  • 2 回答
  • 0 關注
  • 283 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號