2014-03-19 96 views
-2

如何有效地從字符串列表中生成一組字符?從字符串列表中有效生成一組字符

假設我有一個字符串列表,例如:

windows 
linux-2.6 

然後將得到的字符串應該是:

-.26dilnosuwx 

字符順序應該對應字符類型(ASCII/UTF8)。

編程語言無關緊要。但我更喜歡腳本解決方案(即bash,python等)。

+1

選擇一種語言,然後嘗試自己編寫一些代碼,並且如果您在代碼中遇到特定問題,那麼**只有在[so]上提出問題。 – Dukeling

+0

創建一個集合,填充字符,然後對其進行排序。看起來很簡單。 – Kevin

+0

爲什麼我不得不選擇一種編程語言?我標記了這個語言不可知的原因。此外,有效執行此操作的算法對我而言並不重要,這就是我要問的原因。 – w177us

回答

0

我與Python的解決辦法是用隨機抽樣

>>> import random 
>>> 
>>> my_string = "linux-2.6" 
>>> 
>>> my_set = random.sample(my_string,len(my_string)) 
>>> 
>>> for i in my_set: print i, 
2 i . u x l - 6 n 
2

理解的方式(對我來說)最簡單的是:

create an array of 256 Boolean values 
for each character in the string 
    convert the character to its numerical representation (i.e. 'A' is 65, etc.) 
    set the corresponding value in the array to true 
end for 

// done scanning strings. Now output: 
for i = 0 to 255 
    if array[i] is set 
     output character value i 

如果你使用Unicode字符的工作的話,該數組必須是65,536布爾值。

還有其他的方法可以做到這一點。例如,您可以使用位數組而不是布爾值來節省空間。或者,您可以創建一個哈希表或用某些語言設置,例如。但上述作品很容易理解,並且可以翻譯成幾乎任何編程語言。