• UVa 156 Ananagrams


    题意:给出一些单词,在这些单词里面找出不能通过字母重排得到的单词(判断的时候不用管大小写),然后按照字典序输出。

    学习的紫书的map= =

    将每一个单词标准化 先都转化为小写,再排序(即满足了题目中说的不能通过字母重排这个条件) 然后记录出现次数,将出现次数为1的储存再输出

    话说这一题的标准化要好好学学= =(字母重排用排序来做= =)

     1 #include<iostream>  
     2 #include<cstdio>  
     3 #include<cstring> 
     4 #include<vector> 
     5 #include<algorithm> 
     6 #include<cctype> 
     7 #include<set>
     8 #include<map>
     9 using namespace std;
    10 
    11 map<string,int> cnt;
    12 vector<string> words;
    13 vector<string> ans;
    14 
    15 string repr(const string& s)
    16 {
    17     string ans=s;
    18     for(int i=0;i<ans.length();i++)
    19     ans[i]=tolower(ans[i]);
    20     sort(ans.begin(),ans.end());
    21     return ans;
    22 }
    23 
    24 int main()
    25 {
    26     string s;
    27     while(cin>>s)
    28     {
    29         if(s[0]=='#') break;
    30         words.push_back(s);
    31         string r=repr(s);
    32         if(!cnt.count(r)) cnt[r]=0;
    33         cnt[r]++;
    34     }
    35     for(int i=0;i<words.size();i++)
    36         if(cnt[repr(words[i])]==1) ans.push_back(words[i]);
    37         
    38         sort(ans.begin(),ans.end());
    39         for(int i=0;i<ans.size();i++)
    40         cout<<ans[i]<<"
    ";
    41     return  0;
    42 }
    View Code
  • 相关阅读:
    CSS3 转换2D transform
    jquery中this和event.target的区别
    jQuery中事件对象e的事件冒泡用法示例(事件冒泡与阻止冒泡)
    表单Checkbox全选反选全不选
    表单获取焦点失去焦点
    表单非空校验
    无刷新评论
    定时器.倒计时
    虚拟硬件调整
    虚拟机功能
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4296585.html
Copyright © 2020-2023  润新知