【概要】
インターネットことわざに循環:「多くの場合、インターネットに浮かんで、ああ、どのように私はああナイフはできません」実際には、実際には満足してオンラインに滞在することができるようにするために、あなたには、いくつかの安全の知識を学ぶことができ、難しいことではありません。
まず、私たちは安全なパスワードを設定する必要があります。パスワードはどのような安全と呼ばれますか?一般的に、より安全なパスワードは、少なくとも以下の2つの条件を満たすべきである:
(1)パスワードの長さよりも大きい8に等しく、以上16。
(2)パスワードの文字は、4基の少なくとも3で「文字クラス」の下から来る必要があります。
4文字カテゴリは以下のとおりです
。1.大文字:A、B、C ... Z;
2.小文字:A、B、C ... Z;
3.デジタル:0,1,2 ... 9;
4つの特殊文字:!〜、@、#、$、%、^は、
あなたのタスクは、それが安全なパスワードであるかどうかを判断することで、あなたにパスワードを与えます。
【入力】
入力データの最初の行番号Mを含む、コード文字のみ上記の4つのカテゴリを含む、各列に、パスワード(50の可能な最大長さ)M行を取りました。
【出力】パスワードを決定するために、各テストケースは、安全なパスワードではないためには、出力YES、そうでなければ出力NOです。
【サンプル入力】
3 a1b2c3d4 Linle ACM @ ^〜^ @ ^ @!%
【出力例】
NO
YES
NO
[]コードの実装
インポートjava.util.Scanner; パブリック クラスメイン{ 公共 静的 ボイドメイン(文字列[]引数){ // TODO方法スタブ自動生成 スキャナリーダー= 新しいスキャナ(System.in)。 INT、N = reader.nextInt()。 文字列s [] = 新しい文字列[n]は、 以下のために(int型 ; iがn <I ++は、I = 0 ){ S [I] = reader.nextを(); } のために(int型 i = 0; iがn <; iは++ ){ int型 daxie = 0; int型 xiaoxie = 0 ; int型 shuzi = 0 ; int型 fuhao = 0 ; もし(S [i]の.LENGTH()> = 8 && S [i]の.LENGTH()<= 16 ){ ため(INT J = 0であり、j <S [i]の.LENGTH(); J ++ ){ もし [S( I] .charAt(J)> = 65の&& S [i]が.charAt(J)<= 90 ) daxie ++ 。 そう であれば(S [i]が.charAt(J)> = 97の&& S [i]が.charAt(J)<= 122 ) xiaoxie ++ 。 それ以外の 場合(S [i]は.charAt(I)> = 48の&& S [i]が.charAt(J)<= 57 ) shuzi ++ 。 他 fuhao ++ ; } であれば(daxie> 0 && xiaoxie> 0 && shuzi> 0 || daxie> 0 && xiaoxie> 0 && fuhao> 0 || daxie> 0 && shuzi> 0 && fuhao> 0 || xiaoxie> 0 && shuzi> 0 && fuhao> 0 ){ するSystem.out.println( "YES" ); } 他{ するSystem.out.println( "NO" )。 } } 他{ のSystem.out。println( "NO" ); } } } }