Linux数独代码,linux – Bash简化数独
因此,我必须编写一个bash脚本来检查9×9“sudoku”解决方案是否有效,但简化的是我不必将其划分为3×3,而只是检查行和列是否包含任何重复的数字,以及有效数字仅为1-9 ..
这是我的想法,但无法让它工作:
#!/bin/bash
error="false"
count=0
#this would be for columns
#for i in 1 2 3 4 5 6 7 8 9
#do
#cat sudoku.txt | awk -F "" '{ print $'$i'}' | uniq -c | awk '$1 > 1 { count++ } END { print count }'
#done
#and this would be for rows
for i in 1 2 3 4 5 6 7 8 9
do
cat sudoku.txt | awk '{ print FNR=$'$i'}' | uniq -c |
awk '$1 > 1 { count++ } END { print count }' |
awk ' count > 0 { $error="true" } END { print $i }' |
awk '{ if ($error = "true") print "Wrong data!"; else print "Correct data!"; } '
done
最佳答案
$awk '
function check(num) {
return num != 45 ? 1 : 0;
}
{
row = 0;
for (i = 1; i <= 9; i++) {
row += $i;
col[i] += $i;
}
if (check(row) > 0) {
errors[++error_len] = sprintf("error in line %s: %s", FNR, $0);
}
}
END {
for (i = 1; i <= 9; i++) {
if (check(row) > 0) {
errors[++error_len] = sprintf("error in column %s: %s", i, col[i]);
}
}
if (error_len) {
for (i = 0; i <= error_len; i++) {
print(errors[i]);
}
}
else {
print("all good");
}
}
' sudoku
error in line 4: 6 7 1 4 8 2 6 9 3
$cat sudoku
8 1 2 9 7 4 3 6 5
9 3 4 6 5 1 7 8 2
7 6 5 8 2 3 9 4 1
6 7 1 4 8 2 6 9 3
2 8 9 3 6 5 4 1 7
6 4 3 7 1 9 2 5 8
1 9 6 5 3 7 8 2 4
3 2 8 1 4 6 5 7 9
4 5 7 2 9 8 1 3 6
Linux数独代码,linux – Bash简化数独相关推荐
- linux缓存代码,Linux使用的缓存
Linux使用的缓存 6.7.1 Linux使用的缓存 不管在硬件设计还是软件设计中,高速缓存是获得高性能的常用手段.Linux 使用了多种和内存管理相关的高速缓存. 1. 缓冲区高速缓存: 缓冲区高 ...
- linux 定时器 代码,linux C++ 定时器代码
linux C++ 定时器代码:#include #include #include using namespace std; /* union sigval { int sival_int; //i ...
- linux mtp 代码,Linux MTP 的故事
Linux下面有许许多多糟糕的故事,输入法算是其中之一,不过今天我们要讲的是另外一个故事. 这个故事本质上和KDE关系不大,不过也算让我纠结了许久了. 首先来介绍一下MTP,MTP是Media Tra ...
- linux ntpdate代码,Linux ntpdate命令详解
ntpdate命令用于同步更新互联网时间,或者NTP服务器时间 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源 ...
- copy文件的Linux程序代码,Linux下C语言实现CopyFile
Linux下C语言实现文件拷贝 /* Function:copy file from file1 to file2 How to execute: ./copyfile file1 file2 ( ...
- linux samba代码,Linux下Samba服务器源码安装及配置
获取samba源代码 你可以通过执行svn命令svn co svn://svnanon.samba.org/samba/trunk samba.获取最新的samba源文件,也可以直接从http://s ...
- linux 文件系统 代码,Linux文件系统介绍
本篇博文介绍一下Linux系统的文件系统, 由于Linux标准委员会制定了一个文件系统标准FHS, 文件系统层级标准, 规定Linux发行版应该创建哪些目录存储特定类型的文件. 根目录记为 / 一级目 ...
- 初学linux系统代码,linux初学者-系统日志(二)(示例代码)
先前在(一)中介绍到在不同主机间日志同步的方法,在一台主机上可以看到另一台主机的日志.这里会介绍系统日志方面的一些其他内容. 1.日志的采集格式 在日志的采集中,由图可以看出,这样的排列或者显示方式会 ...
- linux ps 代码,Linux ps命令详解(示例代码)
ps命令是Process Status的缩写, 用来列出系统中当前运行的那些进程. ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用to ...
- linux cat代码,linux cat命令(示例代码)
1.cat命令功能 cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用 2.cat命令格式 ca ...
最新文章
- c#书写规范之---注释
- 定时备份FTP+Mysql到云服务器
- C语言关于signal()函数
- 国内常用的学习flutter地址
- iis php 假死 nginx,网站假死 重启NGINX无效 必须重启PHP 原因分析
- 转:centos8开启防火墙端口
- 搜狐视频如何开启青少年模式
- html5虚拟摇杆,[Unity插件] 虚拟摇杆EasyTouch
- f分布表完整图_如何用Excel制作频率(频数)分布表(图)?
- docker-将ab测试工具打包镜像
- 20170919_C++面试问题记录
- python处理excel函数库_Python 操作 Excel 的函数库
- 数据恢复技术与LVM数据恢复方法
- 利用多线程爬点dianying回家慢慢看【python爬虫入门进阶】(05)
- Ubuntu设置开机自启动
- 微信小程序开发系列(五)——小程序中存储emoji表情符
- 解决vs2019中vsvim无法使用ctrl+[的问题
- 我的功放和你们用的功放芯片的SD_MUTE脚电平不一样_该如何处理
- openwrt上的asterisk的VOIP系统的建立
- matlab butter stop,Matlab butter函数设计滤波器
热门文章
- python语言支持函数式编程_python 函数式编程学习笔记
- 鸿蒙系统卸载App,强力卸载手机软件
- mysql 章节作业题
- React Suspense lazy
- excel表格横向纵向变换_excel2016如何把纵向的数据变为横向
- EPP-常见问题总结
- QT笔记- 如何判断窗口小部件是否自动出现(或隐藏)了滑条?
- 计算机思维在绘画方面的应用,运用电脑绘画培养学生创新思维能力
- 【说明】最近文章可在掘金查看
- win8计算机显示在桌面快捷方式,win10、win8.1系统桌面快捷方式图标显示异常怎么办-系统操作与应用
-亦是美网络...