要做的最佳方法是什么?给定字符串A和字符串C的集合,以字符串中A的位置的非递减顺序排列集合中的字符串。按另一个字符串的位置对字符串进行排序
例如,
A= abc
C= [deabc, abc, dabc, dad]
Sorted C= [abc, dabc, deabc]
我的想法是遍历集合并把它放在一个HashMap /词典与A在C中的位置[I]为指标。然后从HashMap构造排序后的集合。这不是一个家庭作业问题。只是想知道这样做的有效方式/算法。任何指针都会有帮助。
要做的最佳方法是什么?给定字符串A和字符串C的集合,以字符串中A的位置的非递减顺序排列集合中的字符串。按另一个字符串的位置对字符串进行排序
例如,
A= abc
C= [deabc, abc, dabc, dad]
Sorted C= [abc, dabc, deabc]
我的想法是遍历集合并把它放在一个HashMap /词典与A在C中的位置[I]为指标。然后从HashMap构造排序后的集合。这不是一个家庭作业问题。只是想知道这样做的有效方式/算法。任何指针都会有帮助。
这里有一个简单的方法使用LINQ:即不包含字符串
var SortedC = C.OrderBy (d => d.IndexOf(A)).ToArray();
注会在开始进行排序,因为IndexOf
回报-1
。此外,具有相同索引的字符串A的行为是未定义的,并且将以任意顺序返回,除非您提供了排序来处理这些行为。
stringsArray.OrderBy(s => s.IndexOf("a"))
你可以使用[LINQ](http://msdn.microsoft.com/en-us/library/vstudio/bb397926.aspx)吗? – mellamokb
是的,我可以使用LINQ。 – ABC
'var results = yourList.OrderBy(str => str.IndexOf(“abc”))' –