zoukankan      html  css  js  c++  java
  • 4873279(1002)

    #pragma warning (disable:4786)
    #include <iostream>
    #include <map>
    #include <algorithm>
    #include <string>
    #include <vector>
    using namespace std;

    typedef struct
    {
    string first;
    int second;
    }res;

    bool less_first(res tmp1,res tmp2)
    {
    return tmp1.first<tmp2.first;
    }

    bool my_equal(res tmp1,res tmp2)
    {
    return tmp1.first==tmp2.first;
    }

    void main()
    {
    map<char,char> li;
    map<char,char>::iterator mit;
    li['A']='2';li['B']='2';li['C']='2';
    li['D']='3';li['E']='3';li['F']='3';
    li['G']='4';li['H']='4';li['I']='4';
    li['J']='5';li['K']='5';li['L']='5';
    li['M']='6';li['N']='6';li['O']='6';
    li['P']='7';li['R']='7';li['S']='7';
    li['T']='8';li['U']='8';li['V']='8';
    li['W']='9';li['X']='9';li['Y']='9';
    int line;
    cin>>line;
    string temp;
    vector<string> str;
    vector<string>::iterator sit;
    string::iterator strit;

    int i;
    for (i=0;i<line;i++)
    {
    cin>>temp;
    str.push_back(temp);
    }

    for (sit=str.begin();sit!=str.end();sit++)
    {
    strit=remove(sit->begin(),sit->end(),'-');
    sit->erase(strit,sit->end());
    }

    for (sit=str.begin();sit!=str.end();sit++)
    for (mit=li.begin();mit!=li.end();mit++)
    for (strit=sit->begin();strit!=sit->end();strit++)
    if (*strit==mit->first)
    *strit=mit->second;

    res tmp;
    vector<res> result;
    vector<res>::iterator resit;

    int num;
    int j;
    for (i=0;i<str.size()-1;i++)
    {
    num=1;
    temp=str[i];
    for (j=i+1;j<str.size();j++)
    {
    if (temp==str[j])
    {
    num++;
    }
    }
    if (num!=1)
    {
    tmp.first=temp;
    tmp.second=num;
    result.push_back(tmp);
    }
    }
    if (result.empty())
    {
    cout<<"No duplicates."<<endl;
    }
    else
    {
    sort(result.begin(),result.end(),less_first);
    result.erase(unique(result.begin(),result.end(),my_equal),result.end());
    for (resit=result.begin();resit!=result.end();resit++)
    {
    resit->first.insert(resit->first.begin()+3,1,'-');
    cout<<resit->first<<""<<resit->second<<endl;
    }
    }
    }
  • 相关阅读:
    系统组件:动作条ActionBar
    Android Studio 常用快捷键汇总
    Android第三方服务(1):语音识别(1)
    Android数据存储(4):SQLite Database
    Android数据存储(3):External Storage
    Android数据存储(2):Internal Storage
    Android数据存储(1):SharedPreferences
    Android网络通信框架Volley总结
    LeetCode刷题记录
    【hard】282. Expression Add Operators
  • 原文地址:https://www.cnblogs.com/tiandsp/p/2343793.html
Copyright © 2011-2022 走看看