POJ[1002]487-3279
来源:互联网 发布:星星宠物 知乎 编辑:程序博客网 时间:2024/06/11 21:07
- 如果相邻号码相同
- 次数times前后累加
- 如果相邻号码不同
- 上一个号码次数不为1:输出
- 上一个号码次数为1:不输出
注意:以上逻辑总不会显示(输入的)最后一个重复号码,要单独判断
#include <iostream>#include <string>#include <vector>#include <algorithm>using namespace std;char arr[26]={'2','2','2','3','3','3','4','4','4','5','5','5','6','6','6','7','7','7','7','8','8','8','9','9','9','9'};struct phoneNum{ phoneNum(string str="",long time=1){ this->num=str; this->times=time; }; string num; long times;};void handleStr(string& str);bool comp(const phoneNum& n1,const phoneNum& n2){ return n1.num<n2.num;}int main(){ long n; cin>>n; std::vector<phoneNum> v(n); string str; for (int i = 0; i < n; ++i) { cin>>v[i].num; } for (int i=0;i<n;i++) { handleStr(v[i].num); } sort(v.begin(),v.end(),comp); bool have=0; for (int i=1;i<n;i++) { if (v[i].num==v[i-1].num) { have=1; v[i].times=v[i].times+v[i-1].times; } else if(v[i-1].times!=1){ cout<<v[i-1].num<<' '<<v[i-1].times<<endl; } } if (have!=1) { cout<<"No duplicates."<<endl; } // 如果所有数字都相同,以上逻辑有错 if (v[n-1].times!=1) { cout<<v[n-1].num<<" "<<v[n-1].times<<endl; } return 0;}void handleStr(string& str){ for (int i=0;i<str.size();i++) { if (str[i]=='-') { str.erase(i,1); i--; } else if(!('0'<=str[i]&&'9'>=str[i])){ str[i]=arr[int(str[i]-'A')]; } } str.insert(3,"-");}
0 0
- POJ--1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- poj 1002 "487-3279"
- POJ 1002 487-3279
- poj 1002 487-3279
- poj 1002 487-3279
- POJ-1002 487-3279
- poj 1002 487-3279
- POJ 1002 487-3279
- poj 1002 487-3279
- (POJ 1002) 487-3279
- POJ 1002 487-3279
- POJ 1002 487-3279
- [POJ]1002 487-3279
- POJ 1002 487-3279
- poj 1002 487-3279
- 配置 Android 的 SDK, DNK, JDK, ANT 环境
- MyEclipse使用技巧(持续更新)
- HDU4508--完全背包
- js实现页面换肤
- codeforces B. Fox And Two Dots (dfs)
- POJ[1002]487-3279
- TCP/IP协议详解——邮差与邮局(2)
- Webpack介绍及入门
- 树状数组
- windows-API劫持(API-HOOK)
- iOS_内购IAP
- 利用TortoiseGit客户端来管理GitHub项目代码
- Power Designer 基础使用
- Android属性allowBackup安全风险浅析