数独ソリューションチェッカーを作成する
ここには数独ソルバーの大群がありますが、私はあなたにできる限り小さなソリューションチェッカー(コードゴルフ)を作成してほしいです。
有効なエントリは、引数として9x9配列(コマンドラインでシリアル化された参照で渡される、または任意に取得する)として受け取るか、最終グリッド用の9行の9行の入力ファイルを受け入れることができます。 。以下の入力例を参照してください。
有効な入力は10進数(1〜9)でなければなりません
欠落している、空の、余分な、数値以外の位置、または1〜9以外の数値を持つ位置は、ゼロ以外の結果を返すか、エラーを出力するか、またはその両方によって無効な入力として拒否されます。
プログラムは、各数値が列ごとに1回、行ごとに1回、3x3サブグリッドごとに1回表示されるかどうかをテストする必要があります。合格した場合は「0」を返し、そうでない場合はゼロ以外の結果を返します。
外部リソース(ウェブサイトなど)の使用は避けてください。
ソリューションがスタンドアロンプログラムである場合、終了ステータスが「0」であるか「Pass」または「Fail」でゼロ以外である場合は、終了しても問題ありません。
最小の答えを当てましょう!
入力例:
c配列:
int input[9][9]={{1,2,3,4,5,6,7,8,9},
{4,5,6,7,8,9,1,2,3},
{7,8,9,1,2,3,4,5,6},
{2,3,1,5,6,4,8,9,7},
{5,6,4,8,9,7,2,3,1},
{8,9,7,2,3,1,5,6,4},
{3,1,2,6,4,5,9,7,8},
{6,4,5,9,7,8,3,1,2},
{9,7,8,3,1,2,6,4,5}
};
ファイル:
123456789
456789123
789123456
231564897
564897231
897231564
312645978
645978312
978312645
9つのサブグリッド:
+---+---+---+
|123|456|789|
|456|789|123|
|789|123|456|
+---+---+---+
|231|564|897|
|564|897|231|
|897|231|564|
+---+---+---+
|312|645|978|
|645|978|312|
|978|312|645|
+---+---+---+
1
か-1