白準1759/パスワードの作成
質問する
に答える
説明:
この条件を満たすすべてのパスワードを要求する問題
コード#コード#
import java.util.*;
public class Main {
public static boolean check(String password) {
int ja = 0;
int mo = 0;
for (char x : password.toCharArray()) {
if (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u') {
mo += 1;
} else {
ja += 1;
}
}
return ja >= 2 && mo >= 1;
}
public static void go(int n, String[] alpha, String password, int i) {
if (password.length() == n) {
if (check(password)) {
System.out.println(password);
}
return;
}
if (i >= alpha.length) return;
go(n, alpha, password+alpha[i], i+1);
go(n, alpha, password, i+1);
}
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
String[] alpha = new String[m];
for (int i=0; i<m; i++) {
alpha[i] = sc.next();
}
Arrays.sort(alpha);
go(n, alpha, "", 0);
}
}
コードの説明
• go(n, alpha, password, i)
•n:作成するパスワードの長さ
•alpha:使用可能なアルファベット
•password:これまでに作成したパスワード
•i:使用するアルファベット索引を確認する必要があります
•正解が見つかった場合(ここでは質問の条件に合致しているかどうかを確認する必要があります)
• n == password.length()
•あり得ない
• i >= alpha.size()
注意:
ソース:https://www.acmicpc.net/problem/1759
Reference
この問題について(白準1759/パスワードの作成), 我々は、より多くの情報をここで見つけました https://velog.io/@dogit/백준-1759-암호만들기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol