递归构建字符串

时间:2019-05-07 12:57:58

标签: java algorithm dynamic-programming

考虑一个类 DataHolder

属性:

  
      
  1. 名称:数据名称
  2.   
  3. 值:值(逗号分隔)
  4.   

我的输入是DataHolders的列表。 例如:

  

DataHolder列表:
  DataHolder1:名称:A,值: 1,2

     

DataHolder2:名称:B,值: X

     

DataHolder3:名称:C,值: a,b,c

我想从数据中构建一个像这样的字符串列表: 1Xa 1倍 1Xc 2Xa 2倍 2Xc

我想出了使用递归的逻辑。

 void formString(List<DataHolder> dataHolders, int currentIndex, String formedString, int size){
 if(currentIndex == size){
      // store formedString in a list and return
 }
 else{
      1. get value from dataholder
      2. String tokenize the value
      3. iterate over the tokenized value and for each tokenized value call 

 formString(dataHolders, currentIndex + 1, formedString + tokeizedValue, 
 size)
 }
 }

我的代码有效,并且产生了预期的输出。 1Xa 1倍 1Xc 2Xa 2倍 2Xc

除了递归方法之外,还有其他更好的方法吗?

0 个答案:

没有答案