Ananagrams UVA 156(反片语)

古城微笑少年丶 2024-02-17 18:46 143阅读 0赞
  1. #include
  2. #include
  3. #include
  4. #include
  5. #include
  6. #include
  7. #include
  8. using namespace std;
  9. mapmp;

  10. vectorvec;
  11. string lower1(const string &s){ 将大写转换成小写,其中 tolower位于头文件cctype中
  12. string s1=s;
  13. for(int i=0;i<s1.length();i++){
  14. s1[i]=tolower(s1[i]);
  15. }
  16. sort(s1.begin(),s1.end()); //对于string 类字符串的从小到大的排序
  17. return s1;
  18. }
  19. int main(){
  20. string str;
  21. while(cin>>str){
  22. if(str==”#“)break;
  23. vec.push_back(str);
  24. string temp=lower1(str);
  25. if(!mp.count(temp))mp[temp]=0; //判断当转换成小写之后是否在map中出现
  26. mp[temp]++;
  27. }
  28. vectortemp_v;

  29. for(int i=0;i<vec.size();i++){
  30. if(mp[lower1(vec[i])]==1)temp_v.push_back(vec[i]);
  31. }
  32. sort(temp_v.begin(),temp_v.end());
  33. for(vector::iterator iter=temp_v.begin();iter!=temp_v.end();iter++){
  34. cout<<*iter<<endl;
  35. }
  36. return 0;
  37. }

//for(int i=0;i<temp_v.size();i++){

// cout<<temp_v[i]<<endl;

//} //当然遍历vector容器可以通过下标形式访问,更加直接

发表评论

表情:
评论列表 (有 0 条评论,143人围观)

还没有评论,来说两句吧...

相关阅读

    相关 uva156(标准化+map)

    输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。 在判断是否满足条件时,字母不分大小写,但在输出时应保留输入中的大小写,按字典序

    相关 uva 156 Ananagrams STL

    ![Center][] ![Center 1][] 题目大意: 输入一些单词,找出所有满足如下条件的单词,该单词不能通过字母重排,得到输入文本中的另一个单词,在判断

    相关 (UVA156)

    题目解析:是对map,vector的一个很好的练习 首先该单词不能通过字母重新排列 那么先把该单词全部转化为小写 然后排序 用map容器记录每个排序完成的单词出现的次数 然后用