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

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

如何對(duì)字符串中的字節(jié)進(jìn)行排序?

如何對(duì)字符串中的字節(jié)進(jìn)行排序?

Go
慕少森 2023-08-21 14:36:21
我想對(duì)字符串中的字符進(jìn)行排序,但沒(méi)有按預(yù)期工作:package mainimport (    "fmt"    "sort")func getKey(str string) string {    bs := []byte(str)    sort.Slice(bs, func(a, b int) bool {        return str[a] < str[b]    })    return string(bs)}func main() {    fmt.Printf("%v\n", getKey("nat"))    fmt.Printf("%v\n", getKey("tan")) // expect to get "ant", but got "atn"    fmt.Printf("%v\n", getKey("tan") == getKey("nat"))}我希望它打?。篴ntanttrue但實(shí)際打印的是:antatnfalsehttps://play.golang.org/p/CtozIz0M6_K
查看完整描述

1 回答

?
夢(mèng)里花落0921

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

您正在排序bs,但用于str比較:


sort.Slice(bs, func(a, b int) bool {

    return str[a] < str[b]

})

該bs := []byte(str)操作將字符串復(fù)制到字節(jié)數(shù)組并從中創(chuàng)建一個(gè)切片。因此,當(dāng)您排序時(shí),您會(huì)移動(dòng)切片中的字符bs,但比較原始字符串中的字符,并且這些字符不會(huì)因排序而移動(dòng)。


使用正確的比較:


sort.Slice(bs, func(a, b int) bool {

    return bs[a] < bs[b]

})


查看完整回答
反對(duì) 回復(fù) 2023-08-21
  • 1 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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