首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在java中排列多个不同长度的字符串?

在java中排列多个不同长度的字符串?
EN

Stack Overflow用户
提问于 2018-10-02 20:19:31
回答 1查看 122关注 0票数 -4
string1 = "ABC" 
string2 = "DEF" 
string3 = "GHIJ"

输出:"ADG","ADH","ADI","ADJ","AEG","AEH","AEI","AEJ","AFG","AFH","AFI","AFJ“,”AFI“,”AFJ“对于b和c使用递归的方法将是非常有帮助的..

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-03 07:23:09

此方法不使用递归,但在我看来,它是生成所需排列的最简单方法。

static void permute(String... str)
{    
  char[][] chars = new char[str.length][];
  for(int i=0; i<str.length; i++)
    chars[i] = str[i].toCharArray();

  int[] idx = new int[str.length];

  char[] perm = new char[str.length];    
  for(int i=0; i<str.length; i++)
    perm[i] = chars[i][0];

  while(true)
  {      
    System.out.println(new String(perm));

    int k=str.length-1;
    for(; k>=0; k--)
    {
      idx[k] += 1;
      if(idx[k] < chars[k].length) 
      {
        perm[k] = chars[k][idx[k]];
        break;
      }
      idx[k] = 0;
      perm[k] = chars[k][idx[k]];
    }
    if(k < 0) break;
  }
}

测试:

public static void main(String[] args)
{
  permute("ABC", "DEF", "GHIJ");
}

输出:

ADG
ADH
ADI
ADJ
AEG
AEH
AEI
<snip>
CFG
CFH
CFI
CFJ
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52608204

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档