当前位置: 首页 > 面试题库 >

Bash简化数独

胡星汉
2023-03-14
问题内容

因此,我必须编写一个bash脚本来检查9x9的“
sudoku”解决方案是否有效,但简化的是我不必将其划分为3x3,而只是检查行和列是否包含任何重复的数字,并且有效数字只有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 "\t" '{ 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 <-- see the 6 here thats an error:
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


 类似资料:
  • 本文向大家介绍简化嵌套数组JavaScript,包括了简化嵌套数组JavaScript的使用技巧和注意事项,需要的朋友参考一下 假设我们有一个数组数组,其中包含一些这样的元素- 我们的工作是编写一个递归函数,该函数接受此嵌套数组,并将数组中的所有fale值(NaN,undefined和null)替换为0。 因此,让我们为该函数编写代码- 示例 输出结果 控制台中的输出将为-

  • 问题 你写了很多仅仅用作数据结构的类,不想写太多烦人的 __init__() 函数 解决方案 可以在一个基类中写一个公用的 __init__() 函数: import math class Structure1: # Class variable that specifies expected fields _fields = [] def __init__(self,

  • SVD 概述 奇异值分解(SVD, Singular Value Decomposition): 提取信息的一种方法,可以把 SVD 看成是从噪声数据中抽取相关特征。从生物信息学到金融学,SVD 是提取信息的强大工具。 SVD 场景 信息检索-隐性语义检索(Latent Semantic Indexing, LSI)或 隐形语义分析(Latent Semantic Analysis, LSA) 隐

  • 降维技术 场景 我们正通过电视观看体育比赛,在电视的显示器上有一个球。 显示器大概包含了100万像素点,而球则可能是由较少的像素点组成,例如说一千个像素点。 人们实时的将显示器上的百万像素转换成为一个三维图像,该图像就给出运动场上球的位置。 在这个过程中,人们已经将百万像素点的数据,降至为三维。这个过程就称为降维(dimensionality reduction) 数据显示 并非大规模特征下的唯一

  • 我尝试使用mave-jaxb2插件和jaxb2-basics简化插件将XSD转换为JAXB类。 pom中的配置。xml在本文中提供 样品xsd(复杂选择类型) 然而,生成的JAXB类有aOrB引用。

  • 问题内容: 当我打字 我得到 代替。我知道此功能“没有保证”。 题。 是否有一些特定的简化(通过级数展开或其他方式)将指数的对数转换为恒等函数? 问题答案: 您必须设置为实型,您的代码才能工作: 输出:。 对于该公式的复杂结果,并不总是等于。例子在这里。