以下是引用IOS小菜鸟在2015-11-5 15:58:06的发言:
排序 我用的冒泡交换法只能做到这里。但是下面还有两个循环,就是删除重复 和输出。实在不知道怎么去写
排序之後,遍歷排序後的字符串,如果下一個字符跟現在的一樣,就遞進再一個,直到不一樣,把不一樣的放到當前的下一個位置,其實仍然類似冒泡的做法。
要達到輸出的目的,其實有許多辦法:
1.用前面有人說的列表法是最快的,但應該用在字符串的數集比較小的情況下,比如ASCII編碼的字符串是可以的,對諸如Unicode這樣的大字符集(漢字文本)就代價太大了。
2.排序後,直接輸出結果,打印一個字符之後,看下一個是不是跟已輸出的一樣,一樣就跳過,不一樣就輸出。
3.如果題目有附帶要求,要得到最終的字符串,也有兩個途徑,一是結果仍然放在原來的數組中,此時需要如我說的那樣再處理;另一個是直接生成一個新的字符串,此時如2一樣做法。
4.如果不想寫太多雙重循環,可以先像3的後面那樣生成新串,然後把新串複製給舊串。
除2和3的前半截,其餘的方案都要耗用額外的内存。