输入3个字符产生4个字母串
Input 3 characters to produce 4 letter strings
我正在尝试创建一个 java 程序,它接受 3 个不同的字符,然后生成这 3 个字符的所有可能的 4 个字母组合。例如 a b c
的输入会产生...
abca
abcb
abcc
aabc
abbc
...
有没有简单的方法可以做到这一点?
以下程序应该适合您:
public static void main(String[] args) {
char[] alphabet = new char[] {'a','b','c'};
possibleStringsOfLengthK(4, alphabet, "");
}
public static void possibleStringsOfLengthK(int maxLength, char[] alphabet, String currentValue) {
if(currentValue.length() == maxLength) {
System.out.println(currentValue);
} else {
for(int i = 0; i < alphabet.length; i++) {
String oldValue = currentValue;
currentValue += alphabet[i];
possibleStringsOfLengthK(maxLength, alphabet, currentValue);
currentValue = oldValue;
}
}
}
输出为(从左到右,从上到下阅读):
aaaa aaab aaac aaba aabb aabc aaca aacb aacc
abaa abab abac abba abbb abbc abca abcb abcc
acaa acab acac acba acbb acbc acca accb accc
baaa baab baac baba babb babc baca bacb bacc
bbaa bbab bbac bbba bbbb bbbc bbca bbcb bbcc
bcaa bcab bcac bcba bcbb bcbc bcca bccb bccc
caaa caab caac caba cabb cabc caca cacb cacc
cbaa cbab cbac cbba cbbb cbbc cbca cbcb cbcc
ccaa ccab ccac ccba ccbb ccbc ccca cccb cccc
这会给你一些想法,你可以进一步优化它。你可以
还需要为所有测试用例验证它,并且可能需要根据
您的要求。
提示:StringBuilder
和增强循环怎么样?
我正在尝试创建一个 java 程序,它接受 3 个不同的字符,然后生成这 3 个字符的所有可能的 4 个字母组合。例如 a b c
的输入会产生...
abca
abcb
abcc
aabc
abbc
...
有没有简单的方法可以做到这一点?
以下程序应该适合您:
public static void main(String[] args) {
char[] alphabet = new char[] {'a','b','c'};
possibleStringsOfLengthK(4, alphabet, "");
}
public static void possibleStringsOfLengthK(int maxLength, char[] alphabet, String currentValue) {
if(currentValue.length() == maxLength) {
System.out.println(currentValue);
} else {
for(int i = 0; i < alphabet.length; i++) {
String oldValue = currentValue;
currentValue += alphabet[i];
possibleStringsOfLengthK(maxLength, alphabet, currentValue);
currentValue = oldValue;
}
}
}
输出为(从左到右,从上到下阅读):
aaaa aaab aaac aaba aabb aabc aaca aacb aacc
abaa abab abac abba abbb abbc abca abcb abcc
acaa acab acac acba acbb acbc acca accb accc
baaa baab baac baba babb babc baca bacb bacc
bbaa bbab bbac bbba bbbb bbbc bbca bbcb bbcc
bcaa bcab bcac bcba bcbb bcbc bcca bccb bccc
caaa caab caac caba cabb cabc caca cacb cacc
cbaa cbab cbac cbba cbbb cbbc cbca cbcb cbcc
ccaa ccab ccac ccba ccbb ccbc ccca cccb cccc
这会给你一些想法,你可以进一步优化它。你可以 还需要为所有测试用例验证它,并且可能需要根据 您的要求。
提示:StringBuilder
和增强循环怎么样?