//递归分析和使用、/**1.找到相似性*2.设计出口**/importjava.util.List;importjava.util.Vector;publicclasstest17{/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//p(0,10);//p1(0,10);//System.out.println(sum(1,100));//System.out.println(sum1(1,100));//System.out.println(turn("abcdefg"));List<String>list=pl("abcd");for(inti=0;i<list.size();i++){System.out.println(list.get(i));}}//1.简单的打印10个数字问题publicstaticvoidp(intbegin,intend){System.out.println(begin);if(begin<end){//出口p(begin+1,end);}}publicstaticvoidp1(intbegin,intend){if(begin<end){////出口p1(begin,end-1);}System.out.println(end);}//2.简单的书累加问题publicstaticintsum(intbegin,intend){if(begin==end){//出口returnbegin;}return(begin+sum(begin+1,end));//累加后赋给begin}publicstaticintsum1(intbegin,intend){if(begin==end){//出口returnend;}return(end+sum1(begin,end-1));//累加后赋给begin}//3.字符串翻转问题publicstaticStringturn(Strings){//abcdefgif(s.length()<=1){returns;}return(turn(s.substring(1))+s.charAt(0));}///4.全排列问题publicstaticList<String>pl(Strings){List<String>lst=newVector<String>();//初始化一个空链表//abc解题思路:1。先取出要排列串的第一个字符,//bac2.剩下的字串再进行全排列//bca3.将取出的字符插入到全排列后的字串中。//acb//cab//cbaif(s.length()==1){//如果要全排列的字符串只有一个字符,直接加入到已初始化的链表中,返回listlst.add(s);returnlst;}//如果要排列的字符串长度大于1,取出该串的第一个字符,将字串再进行递归处理chara=s.charAt(0);Strings1=s.substring(1);List<String>t=pl(s1);//递归进行字串的全排列for(inti=0;i<t.size();i++){Stringstring=(String)t.get(i);for(intj=0;j<string.length()+1;j++){lst.add(string.substring(0,j)+a+string.substring(j));}}returnlst;}}