Java字典生成算法讲解
程序员文章站
2024-02-28 15:40:46
在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为
class createdic{
private i...
在实际应用中,大家使用的密码可以说多种多样,但是无论有多少,其组成不遑是有可打印字符组成的,我们可以认为
class createdic{ private int bitnum; private string str; public void setbitnum(int num) { bitnum=num; } public void setstr(string str) { str=str; } public int getbitnum(){ return bitnum; } public string getstr(){ return str; } public list<string> getdic(){ int[] tmparray=new int[bitnum]; list<string> final_list=new arraylist<string>(); string result=""; for(int i=0;i<bitnum;i++) tmparray[i]=0; int ncount=0; while(true) { result=""; for(int i=0;i<bitnum;i++) { result+=str.charat(tmparray[i]); } ncount++; system.out.println(result); final_list.add(result+"\r\n"); //开始进行下一轮循环 int length=str.length(); int mark=0; for(int j=bitnum-1;j>=0;j--) { if(tmparray[j]==length-1){ if(j!=0){ continue; } else{ mark=1; break; } } else{ tmparray[j]++; for(int k=j+1;k<bitnum;k++) { tmparray[k]=0; } break; } } if(mark==1){ break; } } system.out.println("一共输出密码个数:"+ncount); return final_list; } }
可以这么说如若组成密码的字符一共有3个分别是"abc",而密码长度是6,则bitnum可以设置为6 而str的内容则为“abc”,这样可以获得所有可能组成的密码字符串即为返回值
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接