代码之家  ›  专栏  ›  技术社区  ›  onCC

数独解决方案检查器有问题吗

  •  0
  • onCC  · 技术社区  · 7 年前

    public static boolean check(int[][] sudoku) {
        String sudokuString = "";
        for(int[] a : sudoku)
          for(int b : a)
            sudokuString += b;
        for(int i = 0; i < 9; i++){
          for(int a = 1; a <= 9; a++){
            sudokuString = sudokuString.replaceFirst(Integer.toString(a), "");
          }
        }
        System.out.println(sudokuString);
        return sudokuString.length() == 0;
    }
    

    现在我很确定我的解决方案做了它应该做的,但是编码挑战网站告诉我它不是。我不明白为什么我的解决方案不正确。

    我请求你的帮助。

    非常感谢你!

    1 回复  |  直到 7 年前
        1
  •  2
  •   user3386109    7 年前

    第一步 了解数独的规则。
    网格的每一列必须正好包含一个数字。 网格的每一行都必须正好包含一个数字。 每个3x3网格必须精确地包含每个数字一次。

    第2步 注意规则。
    短语“每个数字必须正好包含一次”意味着 Set

    第3步 设计一个算法来解决这个问题。
    对于每一列,构造一组数字。 如果(在处理每列的末尾)集合包含九个元素, 那么这个栏目就符合数独的规则了。

    对于每一行,构造一组数字。 这一行符合数独的规则。

    对于每个3x3网格,构造一组数字。

    第4步 写一些代码。
    有在。

    编辑:添加3x3网格信息。