如何排序字符串中的字符例如“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