当前位置:网站首页>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
}
边栏推荐
- Linux安装Oracle Database 19c RAC
- Getting started with k8s: building MySQL with Helm
- How to uninstall SQL Server cleanly
- [blackmail virus data recovery] suffix Crylock blackmail virus
- Live broadcast platform development, flexible menu, and freely adjust the horizontal size of the menu bar
- C language custom types - structure, bit segment (anonymous structure, self reference of structure, memory alignment of structure)
- Luogu greedy part of the backpack line segment covers the queue to receive water
- C language replaces spaces in strings with%20
- DWORD ptr[]
- Causes of laptop jam
猜你喜欢

类和对象(类和类的实例化,this,static关键字,封装)

Minecraft group service opening

Openshift build image

ARP and ARP Spoofing

Driving test Baodian and its spokesperson Huang Bo appeared together to call for safe and civilized travel

Solid principle: explanation and examples

Qunhui NAS configuring iSCSI storage

Openshift deployment application

路由基础—动态路由
![[untitled]](/img/6c/df2ebb3e39d1e47b8dd74cfdddbb06.gif)
[untitled]
随机推荐
Pointer initialization
Web技术发展史
Method recursion (Fibonacci sequence, frog jumping steps, tower of Hanoi problem)
Use the numbers 5, 5, 5, 1 to perform four operations. Each number should be used only once, and the operation result value is required to be 24
Routing foundation - dynamic routing
Use the kaggle training model and download your own training model
Jz-061-serialized binary tree
OpenShift构建镜像
Flex layout
Live broadcast platform development, flexible menu, and freely adjust the horizontal size of the menu bar
[dynamic planning] p4170: coloring (interval DP)
Shortcut key to comment code and cancel code in idea
Learning C
Jumping | Blue Bridge Cup
HackTheBox-Gunship
Implementation of bidirectional linked list (simple difference, connection and implementation between bidirectional linked list and unidirectional linked list)
Nacos download, start and configure MySQL database
Openfeign is easy to use
HCIA—應用層
Linux二进制安装Oracle Database 19c