如何排序字符串中的字符例如「5121」 - >「1125」?快速排序字符串中的字符
我可以用下面的代碼做到這一點,但它似乎過於緩慢:
var nonSortedString = "5121"
var sortedString = String(Array(nonSortedString.characters).sort())
如何排序字符串中的字符例如「5121」 - >「1125」?快速排序字符串中的字符
我可以用下面的代碼做到這一點,但它似乎過於緩慢:
var nonSortedString = "5121"
var sortedString = String(Array(nonSortedString.characters).sort())
的CharacterView
妥善處理複合字符,並提供適當的排序(「EEF」與「埃菲社」)。如果您對C++處理unicode字符的方式沒有問題,請嘗試使用其他視圖之一,如nonSortedString.utf16.sort()
。它應該提供類似於C++的速度。
謝謝。這幫助我增加了3.5倍的速度 (對不起,我不能投票回答,因爲我的聲望很低) – yshilov
在swift中,我轉換爲utf16數字。你如何將數組數組轉換回字符串? – c0d3Junk13
*「看起來太慢了」* - 你有具體的數字嗎? –
如果它有效並且不是一個可察覺的性能問題,那很好。 – zaph
那麼,我有一個代碼在迅速和類似的代碼在c + +更快。所以我認爲這個轉換string-> array-> string會播放。我有std :: sort(stringToSort.begin(),stringToSort.end()); – yshilov