码迷,mamicode.com
首页 > 其他好文 > 详细

POJ 1002 487-3279

时间:2014-09-04 18:30:39      阅读:285      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   ar   for   div   代码   

487-3279是一种转化题,按照题目要求将输入转化为规定的格式,再按照某种格式输出。

本题的要求:

将输入的一个字符串按照如下转化规则进行转化,并判断转化后是否有相同的字符串,若有则输出该字符串及出现的次数,如没有则输出No duplicates.

转化规则:

A, B, and C map to 2 
D, E, and F map to 3 
G, H, and I map to 4 
J, K, and L map to 5 
M, N, and O map to 6 
P, R, and S map to 7 
T, U, and V map to 8 
W, X, and Y map to 9 

Q、Z、-不进行映射

解题思路:

将输入的字符串按要求进行转化后作为map的主键,将出现的次数作为主键的值记录。

解题代码:

 1 #include <iostream>
 2 #include <map>
 3 #include <string>
 4 using namespace std;
 5 
 6 string OriginToResult(string origin)
 7 {
 8     string result="";
 9     int i=0;
10     for(i=0;origin[i]!=\0;i++)
11     {
12         if(result.length()==3) result+="-";
13         if(origin[i]>=0&&origin[i]<=9)
14             result+=origin[i];
15         else if(origin[i]>=A&&origin[i]<=P)
16             result+=((origin[i]-A)/3+2+0);
17         else if(origin[i]>=R&&origin[i]<=Y)
18              result+=((origin[i]-A-1)/3+2+0);
19         else continue;
20     }
21     return result;
22 }
23 
24 int main()
25 {
26     int n;
27     string sTmp,rTmp;
28     map<string,int> mResult;
29     map<string,int>::iterator l_it;
30     while(cin>>n)
31     {
32         for(int k=0;k<n;k++)
33         {
34             cin>>sTmp;
35             rTmp=OriginToResult(sTmp);
36             l_it=mResult.find(rTmp);
37             if(l_it==mResult.end())
38             {
39                 mResult.insert(pair<string,int>(rTmp,1));
40             }
41             else
42             {
43                 l_it->second++;
44             }
45         }
46         if((int)mResult.size()==n)
47         {
48             cout<<"No duplicates."<<endl;
49         }
50         else
51         {
52             for(l_it=mResult.begin();l_it!=mResult.end();l_it++)
53             {
54                 if(l_it->second>1)
55                 {
56                     cout<<l_it->first<<" "<<l_it->second<<endl;
57                 }
58             }
59         }
60         mResult.clear();
61     }
62     return 0;
63 }

 

POJ 1002 487-3279

标签:style   blog   color   os   io   ar   for   div   代码   

原文地址:http://www.cnblogs.com/lightbird/p/3956422.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!