有効-数独

/ ** 
*有効、:.によるかどうかを判断独IS -ルールの数独パズル
「」。*数独の取締役会は、部分的に満たされたBEでした、空のセルは、文字がWHEREで満たされている
*一部有効で数独を満たしました。
*
*有効な多数の場合にのみ、次の規則に従って決定さ:
*ナンバープレートが部分的にのみ充填されてもよい、空のセルは、前記文字を埋めます「」空のセルが使用されている。代わりに。
*部分的にだけでは満たされたの数が効果的です。
* /

分析:
。*この質問の目的は、これだけの数が有効であることを意味し、偽、真に戻ります
* 3例がありますが、真実ではありませんfalseを返します:
同じ番号は、出会いを確立していないように見えた場合、各ラインサイクルを:*最初の。スキップ
*秒:各カラムサイクルを、同じ番号に遭遇スキップ確立されていないように見えます。
*第三:同じ番号は、ケースを確立していないと思われる場合は、どんな小さな正方形のサイクルをスキップ(このサイクルは、方法、法律を見てする必要があります)

java.util.HashSetのインポート、
インポートjava.util.Set; 

/ ** 
 !*判断した場合は、:.数独パズルによると、有効な数独IS -ルールで
 数独ボードで*部分的に充填することができ、空のセルを持つWHEREいっぱいでです「」。文字
 有効です*部分的に満たされた数独。
 * 
 *番号のみを決定し、次の規則に従って有効です
 。 『』 *ナンバープレートは、部分的にしか満たされたことがあり、空のセルを特徴と文字を記入してください。空のセルが使用されている。代わりに。
 *部分的にだけでは満たされたの数が効果的です。
 * 
 *解像度:
 。*この質問の目的は、これだけの数が有効であることを意味し、偽、真に戻ります
 * 3例がありますが、事実ではない、falseを返します:
 *最初:各ラインサイクルを、同じ番号が確立されていないように見えた場合、出会いはスキップしてください。
 *秒:各カラムサイクルを、同じ番号に遭遇スキップ確立されていないように見えます。
 *第三:同じ番号が確立されていないように見えた場合、サイクルごとに小さな正方形を遭遇した。(このサイクルは、方法、法律を見てする必要があります)スキップ
 * /

                ' ''、 '7'、 ''、 ''、 ''、 ''、 ''}、 {'。 ''。 ''。 '' 1' 、 '。 ' ''、 ''、 ''、 ''}、
                {'。 ''。 ''。 ''。 ''。 ''。 ''。 ''。 ' ''}、
                。。。。。。。。。{' '' '' '' '' '' '' '' '' '} 
        }。
        System.out.println(Main40.isValidSudoku(ボード)); 
    } { ' ''。 ''。 ''。 ''。 ''。 ''。 ''。 ''。 '}、{'。 ''。 ''。' '' '' '' '' '' ''、、、、、、} }。System.out.println(Main40.isValidSudoku(ボード)); } { ' ''。 ''。 ''。 ''。 ''。 ''。 ''。 ''。 '}、{'。 ''。 ''。' '' '' '' '' '' ''、、、、、、} }。System.out.println(Main40.isValidSudoku(ボード)); }

    パブリック静的ブールisValidSudoku(CHAR [] []基板){ 
        セット<文字>設定=新しいHashSetの<>(); 
        //第一种情况:
        (INT i = 0; iはboard.length <; iは++)のために{ 
            ための(int型J = 0; J <ボード[I] .LENGTH; J ++){ 
                IF(ボード[I] [J ''] ==){ 
                    続けます。
                } 
                IF(set.contains(ボード[I] [J])!){ 
                    set.add(ボード[I] [J])。
                }他{ 
                    falseを返します。
                } 
            } 
            set.clear()。
        } 
        //第二种情况: 
        (INT J = 0; J <ボード[0] .LENGTH; J ++)のために{
            (INT i = 0; iはboard.length <; iは++)のために{
                IF(ボード[I] [J] == 'は'){ 
                    続けます。
                } 
                IF(set.contains(ボード[I] [J])!){ 
                    set.add(ボード[I] [J])。
                }他{ 
                    falseを返します。
                } 
            } 
            set.clear()。
        } 
        //第三种情况:
        (int型のk = 0 kは++; kは<board.length)のための{ 
            {(iが++; I <K / 3 * 3 + 3 I = K / 3 * 3 INT)のための
                (用int型J = K%3 * 3、J <K%3 * 3 + 3; J ++){ 
                    '' IF(ボード[I] [J] ==){ 
                        続けます。
                    }
                    (もし!set.contains(ボード[I] [J])){
                        set.add(ボード[I] [J])。
                    }他{ 
                        falseを返します。
                    } 
                } 
            } 
            set.clear()。
        } 
        trueを返します。
    } 
}

  

おすすめ

転載: www.cnblogs.com/strive-19970713/p/11320292.html
おすすめ