![](/img/trans.png)
[英]How can I use For loops to reduce the number of lines in the following code?
[英]How to make the following code dynamic/ can I inject for loops?
我有一个程序可以打印给定字符串的所有排列可能性。 但这是静态的,我假设该字符串的长度为3,所以我将3硬编码为循环。但是,如果我必须使它成为动态字符串,那么用户可能会输入一个长度为5的字符串。所以我要问的是我可以根据用户的输入注入循环吗?
import java.util.*;
import java.lang.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
// your code goes here
String input = "abc";
int i=0,j=0,k=0;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
for(k=0;k<3;k++){
System.out.println(input.charAt(i)+""+input.charAt(j)+""+input.charAt(k));
}
}
}
}
}
不,注入循环是不可行的(不幸的是,这会使语言一团糟!)
通常使用递归来实现这样的任务,该递归可以轻松地用于生成(字符串,数组或其他任何东西)排列。
如果您真的不想使用递归,则可以使用其他方法,例如,可以通过循环旋转来计算置换-但是这些方法通常很难遵循(和编写)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.