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

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

Go 中切片的濫用

Go 中切片的濫用

Go
犯罪嫌疑人X 2022-10-24 15:15:08
我正在編寫一些代碼以從字符串中查找所有回文:func palindrome(s string) bool {    for i, j := 0, len(s) - 1; i < j; i, j = i + 1, j - 1 {        if s[i] != s[j] {            return false        }    }    return true}func dfs(s string, start int, sol *[][]string, curr *[]string) {    if start == len(s) {        *sol = append(*sol, *curr)        fmt.Println("intermediate value:", *sol)        return    }        for i := start + 1; i <= len(s); i++ {        substr := s[start:i]        if palindrome(substr) {            *curr = append(*curr, substr)            dfs(s, i, sol, curr)            *curr = (*curr)[:len(*curr) - 1]        }    }}func main() {    sol := [][]string{}     dfs("aab", 0, &sol, new([]string))    fmt.Println("last value:", sol)}程序輸出:intermediate value: [[a a b]]intermediate value: [[aa b b] [aa b]]last value: [[aa b b] [aa b]]看起來當函數dfs()返回時,sol被破壞并且它的第一個元素從 [aab] 變?yōu)?[aa bb]。我無法弄清楚我如何聲明和使用參數sol和curr.
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

從 JimB 和 Ricardo Souza 發(fā)表的評論來看,修復是更新時需要的額外附加*sol

*sol = append(*sol, append([]string{}, (*curr)...))

此代碼更改會復制*curr.

此外,curr不需要是指針類型。


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關注
  • 132 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號

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