动态规划相关算法2

1.已知{"ab","cd","efg"},给出你的算法,可以得到如下结果
{ace,acf,acg,ade,adf,adg,bce,bcf,bcg,bde,bdf,bdg}
假设f(i)是第i个字符串的排列之后的结果,f(i+1)=f(i)*str(i+1)即前i个字符串排列的结果和第i+1个字符串的每个字母排列组合。注意初始化条件。

    public String[] stringRes(String[] str){
        return getResult(str,str.length);
    }
    public String[] getResult(String[] str,int n) {
        if(n==1){
            String s=str[0];
            String[] res=new String[s.length()];
            for(int i=0;i<s.length();i++){
                res[i]=Character.toString(s.charAt(i));
                
            }
            
            return res;
        }
         
        String[] res1=getResult(str,n-1);
        String s=str[n-1];
        String[] res2=new String[s.length()];
        for(int i=0;i<s.length();i++){
            res2[i]=Character.toString(s.charAt(i));
        }
        String[] resStr=new String[res1.length*res2.length];
        int l=0;
        for(int j=0;j<res1.length;j++){
            for(int k=0;k<res2.length;k++){
                resStr[l++]=res1[j].concat(res2[k]);
                
            }
        }
        return resStr;
        
        
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 8,706评论 0 2
  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 9,674评论 0 13
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,942评论 0 5
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 11,120评论 0 10
  • 一家游戏资讯软件公司部门结构行政人事部主要负责财务,招聘和日常行政处理研发部主要负责移动客户端的设计,开发与维护 ...
    rogertan30阅读 9,050评论 0 4