如何打印出带有字母集和长度的可能字符串?

时间:2019-03-27 16:37:28

标签: java

我正在使用Java

例如,以下情况:

首先,该函数用作打印所有可能的字符串。

char[] alphabetSet = "012abc".toCharArray();
int length =5;

Output:
0,1,2,a,b,c,01,02,0a,0b,0c,10,11,12,1a ..................... ccccc. stop in length = 5

然后,我想添加一个循环停止器以获取指定的字符串。

char[] alphabetSet = "012abc".toCharArray();
int length =5;
int loopStopper = 3;

Output:
a

谢谢

2 个答案:

答案 0 :(得分:0)

尝试一下:

String alphabet = "012abc";// for example as your code "012abc"
        char[] alphabetSet = alphabet.toCharArray();
        int length = 5;
        for (int i = 0; i < alphabetSet.length; i++) {
            System.out.print(alphabetSet[i] + ",");
        }
        for (int j = 0; j <= length; j++) {
            for (int i = 0; i < alphabetSet.length; i++) {
                System.out.printf("%d%c,",j,alphabetSet[i]);
            }
        }

答案 1 :(得分:0)

使用回溯。

void print_all(char []ch,int maxLen){
     for(int i=1;i<=maxLen;i++)
        backTrack(ch,i,0,new char[i]);
}
void backTrack(char[] ch,int len,int k,char[] ans){
    if(k==len){
        System.out.print(new String(ans,0,len)+",");
        return;
    }
    for(int i=0;i<ch.length;i++){
            ans[k]=ch[i];
            backTrack(ch,len,k+1,ans);
    }
}