要做的最佳方法是什麼?給定字符串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」))' –