【发布时间】:2011-09-29 09:42:26
【问题描述】:
我有两个要同步的字符串列表,以便相同的行获得相同的索引,而不同的行将保留在它们最初所在的列表中,而另一个字符串列表应该为该索引获得一个“填充”。考虑这个例子:
SL1: 1,1,2,3,5,8
SL2: 1,3,5,7,9
procedure SyncStringlists(aSL1,aSL2 : TStringList; aFill : string = '-');
该过程应将列表更改为此
SL1: 1,1,2,3,5,8,-,-
SL2: 1,-,-,3,5,-,7,9
或者,如果列表已排序,则到此
SL1: 1,1,2,3,5,-,8,-
SL2: 1,-,-,3,5,7,',9
我该怎么做呢?
【问题讨论】:
-
请澄清“如果列表已排序”是什么意思。您的示例具有相同的输入数据,并且两个列表都是有序的。
-
对不起。如果 (aSL1.Sorted 和 aSL2.Sorted) 程序应根据字母顺序填充列表 1 或 2,但如果列表未排序,则应填充列表 2,并填充列表 1。这不是一个重要的要求。
-
澄清更多:在问题的两个示例中,列表都是同步的,但只有在第二个示例中,“列表的并集”是排序的。
-
'2' 和 '11' 你想要什么顺序。简单的字符串比较给出 '11'
-
字符串排序很好。我只是为这个例子做了数字。在实际应用中我会用它来处理“真实”的字符串。
标签: algorithm delphi tstringlist