gpt4 book ai didi

java - 获取给定字母表的所有 4 个字符组合

转载 作者:行者123 更新时间:2023-11-30 06:31:32 25 4
gpt4 key购买 nike

假设 alphabet = "abcd1234"我想要所有具有 4 位数字的组合。我不想遍历所有排列,只选择 4 个字符长的排列,因为字母表可能很大。

编辑:这是我目前所拥有的

String alpha = "abcdefg"; 

for (int i = 0 ; i < alpha.length() ; i++) {
for (int j = i ; j < alpha.length()-i ; j++)
System.out.println(String.valueOf(alpha.charAt(i)) + String.valueOf(alpha.charAt(j)) );
}

不幸的是,我只得到一个 2 个字符的单词。而且我无法使用相同的循环结构打印 4 个字符的单词。

最佳答案

如果我正确理解问题 - 所有组合 aaaa 到 4444 - 那么这将起作用。它是“可扩展的”——不需要每个字符的嵌套循环。

String alpha = "abcd1234";
char[] seq = alpha.toCharArray();

int length = 4;
StringBuilder builder = new StringBuilder(" ");

int[] pos = new int[length];
int total = (int) Math.pow(alpha.length(), length);
for (int i = 0; i < total; i++) {
for (int x = 0; x < length; x++) {
if (pos[x] == seq.length) {
pos[x] = 0;
if (x + 1 < length) {
pos[x + 1]++;
}
}
builder.setCharAt(x, seq[pos[x]]);
}
pos[0]++;

System.out.println(builder.toString());
}

关于java - 获取给定字母表的所有 4 个字符组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9671111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com