程式設計題:字串中字元排序
【問題描述】編寫乙個程式,從鍵盤接收乙個字串,然後按照字元順序從小到大進行排序,並刪除重複的字元。
【輸入形式】使用者在第一行輸入乙個字串。
【輸出形式】程式按照字元(ascii)順序從小到大排序字串,並刪除重複的字元進行輸出。
【樣例輸入】badacgegfacb
【樣例輸出】abcdefg
c++上機考試的一道題,在考試時匆忙寫了,雖然編譯通過了,卻有警告資訊,又重新寫了一次,終於完美通過??????
#include #include using namespace std;
int main()
}s[index] = s[i];
s[i] = a;
}//cout << s 《進行排序
排序思路:
開始乙個for迴圈,在for迴圈的開始定義乙個字元,取字串的第i
個值(i從0開始)
,並獲取他的下標i
,然後通過判斷其與i+1的大小關係,確定是否交換,
直到整個字串迴圈一遍(i到字串的長度-1)
,排序完成。
去重去重思路
這裡並沒有真正的對字串進行操作,只是判斷字元出現的次數是否》=2
,若是,則僅輸出一次。
仍然是用乙個for迴圈遍歷整個字串(i從0開始)
,判斷第i
個字元與第i+1
個字元的關係:如果第i+1
個字元與第i
個相同,則不輸出;當後乙個與前乙個不相等時,輸出前乙個。直到迴圈結束,輸出了所有不重複的字元,去重結束。
當然也可以再定義乙個字串,接收上述所有輸出的字元,通過字串的複製,賦給原來的字串,即真正意義上的去重。
第二種方法與第一種方法思路基本一致,只不過是將i從1開始與前乙個字元相比
。
至於還有其他方法,歡迎大佬補充???
大檔案的排序和去重 超級簡單的實現
有一道校招生的面試題,是要給乙個很大的檔案 不能全部放記憶體,比如1t 按行來排序和去重。一種簡單解決方案就是分而治之,先打大檔案分詞大小均勻的若干個小檔案,然後對小檔案排好序,最後再merge所有的小檔案,在merge的過程中去掉重複的內容。在 linux下實現這個邏輯甚至不用自己寫 只要用she...
sql 排序去重的方法
id name course score 1001 李四 英語 100 1007 王五 數學 30 1004 李四 數學 62 1005 李四 語文 83 1006 王五 語文 55 1008 張三 英語 64 1003 王五 英語 56 1002 張三 數學 93 1000 張三 語文 81 先根...
陣列去重與排序
陣列去重 方法一 es6 set方法去重 function unique arr 方法二 indexof function unique arr return result 方法三 使用filter function unique arr 方法四 同樣是set方法但是簡化 new set arr 陣...