给一个字符串abcd 然后再两两组合 三三组合 如: ab ac ad bc bd cb abc abd bcd bca 从左往右 和从右往左 都需要求大神给段代码最好再详解,明天面试 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) { String arr[] = { "a", "b", "c", "d" }; int all = 4; for (int i = 0; i < 1 << all; i++) { StringBuffer sb = new StringBuffer(); for (int j = 0; j < all; j++) { if ((i & (1 << j)) != 0) { sb.append(arr[j]); } } System.out.println(sb); } } List<String> result = new ArrayList<>(); @Test public void test() { String[] target = new String[]{"a", "b", "c", "d"}; for (int i = 1; i <= target.length; i++) calc(i, "", target); System.out.println(Arrays.toString(result.toArray())); } //递归 public void calc(int length, String p, String... target) { for (String item : target) if (!p.contains(item) && (!((length == 1) && result.add(p + item)))) calc(length - 1, p + item, target); } public class Abcd { private static final String[] str = { "a", "b", "c", "d" }; private static String res = ""; int len = str.length; public static void main(String[] args) { t2(); t3(); } private static void t2() { for (int i = 0; i < str.length; i++) { res = str[i]; for (int j = 0; j < str.length; j++) { System.out.println(res + str[j]); } } } private static void t3() { for (int i = 0; i < str.length; i++) { res = str[i]; for (int j = 0; j < str.length; j++) { // System.out.println(res + str[j]); for (int k = 0; k < str.length; k++) { System.out.println(res + str[j] + str[k]); } } } }} 如何获得线程结束消息 java使用Formula One打印条形码 为何不能调用其他类里的数组? 对象创建的小问题 请问java里尖括号是什么语法? 接口继承问题 请高手指点java中排序问题 JAVA如何绘制动态波形图 src里自己定义的类,与导入lib包的类名、包名,程序运行时使用哪一个 各位大虾帮忙啊急如何在jbpersonal中实现一个工程调用另一个工程 JAVAFX相关问题 Java新手请教个关于instanceof的问题
public static void main(String[] args) {
String arr[] = { "a", "b", "c", "d" };
int all = 4;
for (int i = 0; i < 1 << all; i++) {
StringBuffer sb = new StringBuffer();
for (int j = 0; j < all; j++) {
if ((i & (1 << j)) != 0) {
sb.append(arr[j]);
}
}
System.out.println(sb);
}
}
@Test
public void test() {
String[] target = new String[]{"a", "b", "c", "d"};
for (int i = 1; i <= target.length; i++)
calc(i, "", target);
System.out.println(Arrays.toString(result.toArray()));
} //递归
public void calc(int length, String p, String... target) {
for (String item : target)
if (!p.contains(item) && (!((length == 1) && result.add(p + item))))
calc(length - 1, p + item, target);
}
private static final String[] str = { "a", "b", "c", "d" };
private static String res = "";
int len = str.length; public static void main(String[] args) {
t2();
t3();
} private static void t2() {
for (int i = 0; i < str.length; i++) {
res = str[i];
for (int j = 0; j < str.length; j++) {
System.out.println(res + str[j]);
}
} } private static void t3() {
for (int i = 0; i < str.length; i++) {
res = str[i];
for (int j = 0; j < str.length; j++) {
// System.out.println(res + str[j]);
for (int k = 0; k < str.length; k++) {
System.out.println(res + str[j] + str[k]);
} } } }}