字符串的排列

字符串的排列

http://www.nowcoder.com/questionTerminal/fe6b651b66ae47d7acce78ffdd9a96c7

暴力迭代,第n个字符及前面的字符形成的字符串的全排列要先计算第n-1个字符及前面字符形成的字符串的全排列

    public ArrayList<String> Permutation(String str) {
        ArrayList<String> res=new ArrayList<>();
        if(str==null || str.length()==0){
            return res;
        }
        char [] chars=str.toCharArray();
        ArrayList<String> tmp1=new ArrayList<>();
        ArrayList<String> tmp2=new ArrayList<>();
        for(int i=0;i<chars.length;i++){
            if(i==0){
                tmp1.add(new String(chars[i]+""));
            }else{
                for(int k=0;k<tmp1.size();k++){
                    String strTmp=tmp1.get(k);
                    String midStr=null;
                    for(int j=0;j<strTmp.length()+1;j++){
                        midStr=strTmp.substring(0,j)+chars[i]+strTmp.substring(j);
                        if(!tmp2.contains(midStr)){
                            tmp2.add(midStr);
                        }
                    }
                }
                tmp1=new ArrayList(tmp2);
                tmp2.clear();
            }
        }
        res=tmp1;
        Collections.sort(res);
        return res;
    }
全部评论

相关推荐

买蜜雪也用卷:我觉得应该没有哪个人敢说自己熟练使用git,代码分支一复杂还是得慢慢寻思一下的,不过基本的拉代码提交代码还有分支什么的是应该会
点赞 评论 收藏
分享
牛客38347925...:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
“校招”、“3-5年经验”
xiaolihuam...:逆向工程不是搞外挂的吗,好像现在大学生坐牢最多的就是诈骗罪和非法侵入计算机系统罪,发美金,还居家办公,就是怕被一锅端,
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务