func isValidSudoku(board [][]byte) bool {
for i:=0;i<9;i++{
if !isValidSub(board,0,8,i,i){
return false
}
if !isValidSub(board,i,i,0,8){
return false
}
}
for i:=0;i<3;i++{
for j:=0;j<3;j++{
if !isValidSub(board,3*j,3*j+2,3*i,3*i+2){
return false
}
}
}
return true
}
func isValidSub(board [][]byte,ri int,rj int ,ci int ,cj int)bool{
var sig[]bool=make([]bool,10)
for i:=ri;i<=rj;i++{
for j:=ci;j<=cj;j++{
if board[i][j]=='.'{
continue
}
val:=board[i][j]-'0'
if sig[val]{
return false
}else {
sig[val]=true
}
}
}
return true
}