信息學奧賽一本通題庫 1185:單詞排序 題解


這道題就是給定一個英文句子,把里面的單詞按字典序排序,還要去重。排序,我選擇冒泡排序,去重,我用C++自帶的unique函數,它會返回去重后數組最后一個不重復的數的下標,使用前提是必須排序。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
    string s[105], a;
    int n = 0;//一定要賦初值,否則“稻花香里說豐年,聽取WA聲一片”
    while (cin >> a)//一個一個讀入單詞,再放進s里 
        s[++ n] = a;
    for (int i = 1; i < n; i ++)
        for (int j = 1; j <= n - i; j ++)
            if (s[j] > s[j + 1])
                swap(s[j], s[j + 1]);//冒泡排序
    n = unique(s + 1, s + 1 + n) - (s + 1);//去重
    for (int i = 1; i <= n; i ++)
        cout << s[i] << endl;//最后輸出答案
    //getchar();getchar();
    return 0;
}

Be will and be good!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM