• UVa


    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=19294
    #include <iostream>
    #include <algorithm>
    #include <string>
    #include <vector>
    #include <map>
    using namespace std;
    /***************************************************************************************************************
                    题意:找出不能通过字母重重排的单词,按字典序输出(came 和 mace 属于重排单词,不能输出)
                    思路:
                    1,熟悉STL的用法
                    2,压栈用原字符串,处理用小写单词,输出原串
    ***************************************************************************************************************/
    vector <string> words;
    map <string,int> cnt;
    
    string fuc(string s)
    {
        string ans=s;
        for(int i = 0;i < ans.length();i ++)
            if(isalpha(ans[i]))     //判断是否为小写字母,返回0是非小写字母,否则是
                ans[i]=tolower(ans[i]);     //将小写字母转换成大写字母
        sort(ans.begin(),ans.end());
        return ans;
    }
    int main()
    {
        string s;
        while(cin>>s,s != "#")
        {
            words.push_back(s);
            string temp=fuc(s);
            if(!cnt.count(temp))    cnt[temp]=0;
            cnt[temp]++;
        }
        vector <string> ans;
        for(int i = 0;i < words.size();i ++)
            if(cnt[fuc(words[i])] == 1)
                ans.push_back(words[i]);
    
        sort(ans.begin(),ans.end());
        for(int i = 0;i < ans.size();i ++)
            cout<<ans[i]<<endl;
        return 0;
    }
    

  • 相关阅读:
    转载php在IIS中运行
    程序员必去的网站
    分享一下jQuery UI的地址
    dbcp相关配置
    shell学习第二弹-进阶
    shell学习第一弹-初识
    java servlet 3.0文件上传
    Junit使用第二弹
    各个数据库中,查询前n条记录的方法
    junit使用第一弹
  • 原文地址:https://www.cnblogs.com/Jstyle-continue/p/6351979.html
Copyright © 2020-2023  润新知