输入一个字符串,在java中如何将字符串中的字母无重复的进行排序呢(字符串长度不固定)?
比如输入“abc”,则应该输出6个不同的字符串。则应该输出abc、acb、bac、bca、cab、cba快快帮忙!谢谢!!!...
比如输入“abc”,则应该输出6个不同的字符串。
则应该输出
abc、acb、bac、bca、cab、cba
快快帮忙!谢谢!!! 展开
则应该输出
abc、acb、bac、bca、cab、cba
快快帮忙!谢谢!!! 展开
3个回答
展开全部
public class StrTest {
public static void main(String[] args) {
String s = "abc";
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
for (int j = 0; j < c.length - 1; j++) {
char ch = c[j+1];
c[j+1] = c[j];
c[j] = ch;
System.out.println(new String(c));
}
}
}
}
public static void main(String[] args) {
String s = "abc";
char[] c = s.toCharArray();
for (int i = 0; i < c.length; i++) {
for (int j = 0; j < c.length - 1; j++) {
char ch = c[j+1];
c[j+1] = c[j];
c[j] = ch;
System.out.println(new String(c));
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
color4you 的错误 如果4位那么循环执行4*3=12 只有12个结果但实际上又4*3*2*1=24个结果
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static void main(String[] args) throws Exception {
printString("", "abc");
}
private static void printString(String s1, String s2) {
if (s2.length() == 1) {
System.out.println(s1 + s2);
} else {
for (int i = 0; i < s2.length(); i++) {
printString(s1 + s2.substring(i, i + 1), s2.substring(0, i)
+ s2.substring(i + 1));
}
}
}
printString("", "abc");
}
private static void printString(String s1, String s2) {
if (s2.length() == 1) {
System.out.println(s1 + s2);
} else {
for (int i = 0; i < s2.length(); i++) {
printString(s1 + s2.substring(i, i + 1), s2.substring(0, i)
+ s2.substring(i + 1));
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询