当前位置:网站首页>Judge whether it is Sudoku
Judge whether it is Sudoku
2022-07-02 08:41:00 【Tutu is a cat】
subject
Sudoku is a popular number filling game . The most typical Sudoku by 9*9 It's made up of squares , There will be some 1~ 9 The number of . Players need to fill in the numbers of the remaining grids , Make the row where each grid is located 、 Column 、 The small nine palaces contain 1~9 The number of , No weight, no leakage .
Now Xiao Ming has finished some Sudoku games with all the numbers filled in , Preparing to excavate . But before that , He wants you to check whether the problem surface is correct , That is, whether each grid of the completed question surface meets the line 、 Column 、 The little nine palaces contain 1~9.
Input
Enter a number in the first line T, Indicates the number of Sudoku puzzles Xiao Ming has completed .
After that, enter a total of 9 That's ok , Each row 9 The number is separated by a space , Indicates the number in the completed Sudoku .
Output
The output, T That's ok , A string on each line indicates whether the Sudoku is correct .
Output correctly "YES", If there is an error, output "NO".
Data range
about 100% The data of ,1≤T≤5,1≤ Every number ≤9.
sample input
2
7 6 2 5 9 3 1 4 8
9 4 1 2 7 8 5 3 6
8 3 5 4 6 1 7 9 2
1 9 8 6 2 7 3 5 4
4 7 6 3 5 9 2 8 1
2 5 3 8 1 4 6 7 9
3 8 7 1 4 6 9 2 5
5 1 4 9 3 2 8 6 7
6 2 9 7 8 5 4 1 3
8 1 4 7 3 2 6 5 9
9 2 3 6 5 8 1 4 7
5 7 6 4 9 1 2 8 3
3 4 5 2 6 7 8 9 1
1 8 9 3 4 5 3 2 6
2 6 7 1 8 9 5 3 4
7 5 1 9 2 4 7 6 8
4 3 8 5 7 6 9 1 2
6 9 2 8 1 3 4 7 5
sample output
YES
NO
Answer key
Go Language implementation
package main
import (
"fmt"
)
func main() {
// Input
var T int
fmt.Scan(&T)
if T < 1 || T > 5 {
fmt.Println("T Out of range ")
return
}
flag := true
var result [5] bool
for i := 0; i < T; i++ {
// Input array
var c [9][9] int
for i := 0; i < 9; i++ {
for j := 0; j < 9 ; j++ {
var num int
fmt.Scan(&num)
c[i][j] = num
}
}
for n := 0; n < 9 ; n++ {
// Better
if isRepetition(c[n]) {
flag = false
break
}
// Comparison column
var col [9] int
for k := 0; k < 9 ;k++ {
col[k] = c[k][n]
}
if isRepetition(col){
flag = false
break
}
}
if flag {
// squared paper for practicing calligraphy
var nine [9] int
for n := 0 ; n < 7; n++{
for k := 0 ; k < 7; k++{
nine[0] = c[n][k]
nine[1] = c[n+1][k]
nine[2] = c[n][k+1]
nine[3] = c[n+2][k]
nine[4] = c[n][k+2]
nine[5] = c[n+2][k+1]
nine[6] = c[n+1][k+2]
nine[7] = c[n+1][k+1]
nine[8] = c[n+2][k+2]
}
}
if isRepetition(nine) {
result[i] = false
}else {
result[i] = true
}
}else {
result[i] = false
}
}
for i := 0; i < T ; i++{
if result[i] {
fmt.Println("YES")
}else {
fmt.Println("NO")
}
}
}
// In the array 9 Whether the number is repeated
func isRepetition(numChar [9] int) bool {
for i := 0 ; i < len(numChar)-1; i++ {
for j := i+1; j < len(numChar); j++ {
if numChar[i] == numChar[j] {
return true
}
}
}
return false
}
边栏推荐
- Installation and use of simple packaging tools
- Sentinel 简单使用
- c语言自定义类型枚举,联合(枚举的巧妙使用,联合体大小的计算)
- Solid principle: explanation and examples
- HackTheBox-Gunship
- k8s入门:Helm 构建 MySQL
- Implementation of bidirectional linked list (simple difference, connection and implementation between bidirectional linked list and unidirectional linked list)
- Minecraft group service opening
- Don't know mock test yet? An article to familiarize you with mock
- 双向链表的实现(双向链表与单向链表的简单区别联系和实现)
猜你喜欢
[untitled]
IP协议与IP地址
Minecraft群组服开服
16: 00 interview, came out at 16:08, the question is really too
DWORD ptr[]
Nacos download, start and configure MySQL database
c语言自定义类型——结构体,位段(匿名结构体,结构体的自引用,结构体的内存对齐)
Analysis of the use of comparable, comparator and clonable interfaces
Openshift deployment application
Chrome debugging
随机推荐
Matlab-其它
Googlenet network explanation and model building
Analysis of the use of comparable, comparator and clonable interfaces
文件上传-upload-labs
C language custom types - structure, bit segment (anonymous structure, self reference of structure, memory alignment of structure)
Use C language to receive JSON strings
kubernetes部署loki日志系统
Pointer initialization
k8s入门:Helm 构建 MySQL
Smart agriculture solutions smart agriculture system development
web安全--逻辑越权
Introduction to anti interception technology of wechat domain name
[blackmail virus data recovery] suffix Hydra blackmail virus
Network security - summary and thinking of easy-to-use fuzzy tester
Linux安装Oracle Database 19c RAC
IP protocol and IP address
File upload Labs
2022 Heilongjiang latest construction eight members (materialman) simulated examination questions and answers
Tcp/ip - transport layer
Sentinel easy to use