zoukankan      html  css  js  c++  java
  • 算法习题---5.4反片语(Uva156)

    一:题目

    输入一些单词,找出所有满足以下条件的单词:该单词不能通过字母重排得到输入文本中的另外一个单词。在判断是否满足条件时,字母不区分大小写,但在输出时应该保留输入中的大小写,按字典序进行排列
    将输入的单词进行“标准化”,即将单词中的每个字母化为小写并按字典序重排单词,用一个字典来统计一个标准化的单词出现过多少次,输出的时候只输出在标准字典中出现一次的那些单词即可。

    (一)样例输入

    ladder came tape soon leader acme RIDE lone Dreis peat
    ScAlE orb eye Rides dealer NotE derail LaCeS drIed
    noel dire Disk mace Rob dries
    #

    (二)样例输出

    Disk
    NotE
    derail
    drIed
    eye
    ladder
    soon

    二:代码实现

    #define _CRT_SECURE_NO_WARNINGS
    #define _SCL_SECURE_NO_WARNINGS 
    #include <iostream>
    #include <map>
    #include <string>
    #include <sstream>
    #include <algorithm>
    
    using namespace std;
    map<string, string> source;
    map<string, bool> result;
    
    int main()
    {
        freopen("data5_4.in", "r", stdin);
        freopen("data5_4.out", "w", stdout);
    
        char low_str[21];
        string str;
        while (true)
        {
            cin >> str;
            if (str == "#")
                break;
    
            for (int i = 0; i < str.length()+1; i++)
                    low_str[i] = tolower(str[i]);  //转小写
            
            sort(low_str, low_str + str.length());  //将字符串排序
            source.insert(pair<string, string>(str, string(low_str)));  //将源字符串,排序字符串 --> 插入map中
            auto pi = result.find(string(low_str));  //查找排序字符串是否在result映射中
            if (pi == result.end())  
                result.insert(pair<string, bool>(string(low_str), true));  //如果是第一次出现,则设置为true
            else
                pi->second = false;  //如果是出现多次,则设置为false
        }
    
        //进行遍历处理
        for (map<string, string>::iterator iter = source.begin(); iter != source.end();iter++)
        {
            auto it = result.find(iter->second);
            if ((*it).second)  //找到所有的 在result映射中只出现过一次的字符串
                cout << iter->first << endl;  //输出源字符串
        }
    
        freopen("CON", "r", stdin);
        freopen("CON", "w", stdout);
        return 0;
    }
  • 相关阅读:
    「杂文」随想录
    「小说」妖精舞于废墟之上
    昨日之盛,明日之俗 ~ SDOI2021 退役记
    P6292 区间本质不同子串个数
    「杂文」生之重
    「闭门造车」二叉分块树
    「杂文」雨色的魔法(一)
    「笔记」斜率优化 DP
    「笔记」后缀数组
    NOIP 2020 AFO 记
  • 原文地址:https://www.cnblogs.com/ssyfj/p/11512651.html
Copyright © 2011-2022 走看看