poj1002-487-3279(字符串处理)
2024-10-10 02:18:54
一,题意:
中文题,不解释!
二,思路:
1,处理输入的电话号码
2,排序num[]数组
3,输出
三,步骤:
1,消除 -、Q、Z 三种字符,将一个电话号码转化为一个整数存如num[]数组
如:num[0]=4873279;
2,快排函数:sort(num.num+t) 头文件:#include<algorithm>
3,输出前面3位,后面4位,已经出现的次数(记住使用输出格式设置符的时候加头文件:iomanip)
i,设置3位的宽度set(3)、除以10000之后不足3位的补0(setfill('0'))、
cout << setfill('0') << setw(3) << num[i] / 10000;
cout << '-';
ii,设置4位的宽度set(4)、对10000取余之后不足4位的补0(setfill('0'))、
cout << setfill('0') << setw(4) << num[i] % 10000;
cout << ' ' << count << endl;
四,注意:
1,所有电话号码中,一个重复的都没有才输出"No duplicates.",而且只出现一次的不输出。
2,测试用例中会出现Q和Z,这两个字母要处理
3,字符数组要开大些,,小了结果不正确
4,注意电话号码开头是0的,也照样输出0
#include<iostream>
#include<algorithm>
#include<cstring>
#include<iomanip> //I/O流控制头文件
using namespace std; int ctoi(char ch) //把字符ch转换为其在手机上对应的数字键
{
if (ch == 'A' || ch == 'B' || ch == 'C')
return ;
if (ch == 'D' || ch == 'E' || ch == 'F')
return ;
if (ch == 'G' || ch == 'H' || ch == 'I')
return ;
if (ch == 'J' || ch == 'K' || ch == 'L')
return ;
if (ch == 'M' || ch == 'N' || ch == 'O')
return ;
if (ch == 'P' || ch == 'R' || ch == 'S')
return ;
if (ch == 'T' || ch == 'U' || ch == 'V')
return ;
if (ch == 'W' || ch == 'X' || ch == 'Y')
return ;
} //注意:定义长度比较大的数组,最好定义在主函数外(即堆内存中)
char ch[]; //存储一行未处理的电话号码
int num[]; //存储多行已处理的电话号码(如:num[0]=4873279) int main() {
int t;
while (cin >> t) {
for (int i = ; i < t; i++) {
cin >> ch;
for (int j = , k = ; j < strlen(ch); j++) {
if (ch[j] == '-' || ch[j] == 'Q' || ch[j] == 'Z')
continue;
else if (ch[j] <= '')
num[i] = num[i] * + ch[j] - '';
else if (ch[j] <= 'Z')
num[i] = num[i] * + ctoi(ch[j]);
}
} sort(num, num + t); //快排函数sort头文件
bool flag = false;
int count = ;
for (int i = ; i < t; i++) {
if (num[i] == num[i + ]) {
count++;
flag = true;
}
else {
if (count > ) {
cout << setfill('') << setw() << num[i] / ;
cout << '-';
cout << setfill('') << setw() << num[i] % ;
cout << ' ' << count << endl;
}
count = ;
}
} if (!flag) {
cout << "No duplicates." << endl;
}
}
return ;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
最新文章
- OpenLiveWriter代码插件
- HttpClient发送Get和Post请求
- A=AUB
- Android中ListView控件的使用
- MySQL的数据库,数据表,数据的操作
- mongodb版本特性
- php7+apache2.4 (Windows7下),成功启动。(楼主另外提供了1个php7集成环境打包: http://pan.baidu.com/s/1qXwjpF2 ,如果你只是想了解一下,放在d盘根目录。)
- mac osx 快捷键符号以及意义 触发角:锁屏
- spring常用jar包总结(转载)
- C# 新技巧(一)
- 基于Redis主从复制读写分离架构的Session共享
- 九度OJ 1533 最长上升子序列 -- 动态规划
- sizeToFit的用法和用途
- javascript系列之变量对象
- wcf消息模式(随记)
- mysql 5.5中文乱码问题
- js string类型时间转换成Date类型
- 定位公网丢包的工具 mtr
- ps -ef|grep ?解释
- Linux课题实践三——程序破解