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

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

Golang 問題數組數獨 - grid[i][j][0]

Golang 問題數組數獨 - grid[i][j][0]

Go
海綿寶寶撒 2022-05-23 17:01:53
我對此代碼有疑問seenRow[grid[i][j][0] - 49]。這是什么?func sudoku2(grid [][]string) bool {    for i := 0; i < 9; i++ {        var seenRow [9]bool        var seenCol [9]bool        var seenSub [9]bool        for j := 0; j < 9; j++ {            if grid[i][j] != "." {                if seenRow[grid[i][j][0] - 49] {                    return false                }                seenRow[grid[i][j][0] - 49] = true            }            if grid[j][i] != "." {                if seenCol[grid[j][i][0] - 49] {                    return false                }                seenCol[grid[j][i][0] - 49] = true            }            x := i%3*3 + j%3            y := i/3*3 + j/3            if grid[y][x] != "." {                if seenSub[grid[y][x][0] - 49] {                    return false                }                seenSub[grid[y][x][0] - 49] = true            }        }    }    return true}
查看完整描述

2 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

seenRow[grid[i][j][0] - 49]

seenRow是 的切片string,因此是前兩個索引[i][j]grid[i][j]是一個字符串,并且grid[i][j][0]是整數形式的第一個字節值的數值。

減法-49和 9 元素切片seenRow讓我認為字符串的第一個字節是 49 到 57 之間的值(ascii 值 '1' 到 '9')。在這一點上,值得查看代碼的其他部分以了解存儲的數據grid及其語義是什么。

如果我不得不猜測,grid這是一個 9×9 的 Sudoko 板,其中每個值都表示為一個 1 字節的字符串,其值為 '1' 到 '9',并帶有一個特殊值 '.' 這是一個相當奇怪的表示,但它是代碼所暗示的。


查看完整回答
反對 回復 2022-05-23
?
寶慕林4294392

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

看起來它是一個哈希圖的模擬。49 是 character 的 ASCII 字符值1,因此如果一個單元格有 value 1,cell-49將給出 0,如果單元格有2,cell-49將給出 1 等。并且seenSub數組會跟蹤看到了哪些數字。如果seenSub[i]true,則該數字i+1已被看到。



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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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