poj1002-487-3279(字符串处理)
一,题意:
中文题,不解释!
二,思路:
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 ;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
poj1002-487-3279(字符串处理)的更多相关文章
- javascript 过滤字符串中的中文与空格
js 如何过滤字符串里中文或空格呢?方法有很多种,我们可以使用替换与正则表达式来实现,本文向大家介绍两个简单的例子,感兴趣的码农可以参考一下. 1.javascript过滤空格: function m ...
- Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)
系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...
- POJ 3279 Fliptile(翻格子)
POJ 3279 Fliptile(翻格子) Time Limit: 2000MS Memory Limit: 65536K Description - 题目描述 Farmer John kno ...
- POJ 3279 Filptile dfs
题目链接:http://poj.org/problem?id=3279 大意:给出一块n*m的棋盘.里面放满了棋子.有1和0两种状态.给出初始状态,翻动的时候会把当前位置和当前位置的上下左右共五个位置 ...
- [sqlite] 数据库遇到的问题 “该字符串未被识别为有效的 DateTime”
异常详细信息: System.FormatException: 该字符串未被识别为有效的 DateTime. 解决方案: 在日期保存到Sqlite数据库时转换一个类型,比如:string _now = ...
- poj1002 字典树+map+查询单词出现次数
487-3279 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 309235 Accepted: 55223 Descr ...
- Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)
数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...
- JAVA提取字符串中所有的URL链接,并加上a标签
工具类 Patterns.java 1 package com.util; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.P ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率
之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...
随机推荐
- POCO库——Foundation组件概述
Foundation组件作为POCO库的基础组件,主要包含了核心Core.缓存Cache.加解密Crypt.日期时间DateTime.动态类型Dynamic.事件events.文件系统Filesyst ...
- 常用命令[Linux]
Linux文件类型 -:普通文件(f) d:目录文件 b:块设备文件(block) c:字符设备文件(character) l:符号链接文件(symbolic link file) p:命名管道文件( ...
- Android-Spinner [使用C# And Java实现]
效果如下: C#实现代码 using Android.App; using Android.OS; using Android.Widget; namespace SpinnerDemo { [Act ...
- Python-面向对象(类)一
一.如何创建类 class cls: pass 二.创建方法 构造方法: __init__(self, arg) obj = 类('a1') 普通方法: obj = 类('xxx') obj.普通方法 ...
- 【转】Asp.net关闭弹出窗口刷新父窗口
通常情况下,关闭窗口时不需要对父窗口做任何操作,但如果子窗口是某一对象的修改画面,这时,当关闭子窗体时就需要对父窗口刷新,刷新可以通过三种方式来实现:1,采用window.opener.locatio ...
- java后台获取Access_token的工具方法
本方法主要通过java后台控制来获取Access_token,需要你已经知道自己的ID跟密码 因为微信的权限设置大概每天可以获取两千条,每条有效时间为2小时 /** * 输入自己的id跟密码,获取微信 ...
- 现场打印智能无线PDA安卓POS 条码识别、打印、数据采集销售开单收银管理软件
现场打印安卓POS 条码识别.打印.数据采集管理软件 案例: 经营日化品牌,从事小型超市和日用品商店的批发配送业务. 公司以前的销售模式:三个业务员负责跑市场,每个人负责一个区域,平均每天每个人要去到 ...
- DelphiXE10.1项目中增加预编译的方法
操作: 菜单选择Proceject->Options->Delphi Compilerz在Conditional Defines(第一行)中添加预编译标识.例:VCL代码:uses{$IF ...
- NHibernate开发入门
首先,我们了解一下ORM是什么?ORM指对象关系映射(英语:Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程 ...
- 获取终端ip地址
网上找的,记录下 import java.io.*; import java.net.*; import java.util.*; //import org.apache.http.conn.util ...