close

題目連結:   https://onlinejudge.org/external/1/156.pdf

題目大意:  問字的排列組合,大小寫不分,若是重複出現。找不重複出現的字

思路:  STL, Map. 全部排序轉換小寫為key,值為pair<int, string>次數+原始字串,走訪所有元素,查看是否次數等於1,輸出至set並印出。

代碼:  

#include <bits/stdc++.h>
using namespace std;

int main()
{
    map<string, pair<int, string>> dict;
    string line;
    while(getline(cin, line) && line != "#"){
        stringstream ss(line);
        string word;
        while(ss >> word){
            string ord = word;
            transform(word.begin(), word.end(), word.begin(), [&](char c){
                        return c = tolower(c);
                      });
            sort(word.begin(), word.end());
            dict[word].first++;
            dict[word].second = ord;
        }
    }
    set<string> ans;
    for(auto m : dict){
        if(m.second.first == 1){
            ans.insert(m.second.second);
        }
    }
    for(auto w: ans){
        cout << w << endl;
    }
    return 0;
}

arrow
arrow
    創作者介紹
    創作者 尾玉 的頭像
    尾玉

    louisfghbvc的部落格

    尾玉 發表在 痞客邦 留言(0) 人氣()