一,题意:
  中文题,不解释!
二,思路:
  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(字符串处理)的更多相关文章

  1. javascript 过滤字符串中的中文与空格

    js 如何过滤字符串里中文或空格呢?方法有很多种,我们可以使用替换与正则表达式来实现,本文向大家介绍两个简单的例子,感兴趣的码农可以参考一下. 1.javascript过滤空格: function m ...

  2. Java & PHP & Javascript 通用 RSA 加密 解密 (长字符串)

    系统与系统的数据交互中,有些敏感数据是不能直接明文传输的,所以在发送数据之前要进行加密,在接收到数据时进行解密处理:然而由于系统与系统之间的开发语言不同. 本次需求是生成二维码是通过java生成,由p ...

  3. POJ 3279 Fliptile(翻格子)

    POJ 3279 Fliptile(翻格子) Time Limit: 2000MS    Memory Limit: 65536K Description - 题目描述 Farmer John kno ...

  4. POJ 3279 Filptile dfs

    题目链接:http://poj.org/problem?id=3279 大意:给出一块n*m的棋盘.里面放满了棋子.有1和0两种状态.给出初始状态,翻动的时候会把当前位置和当前位置的上下左右共五个位置 ...

  5. [sqlite] 数据库遇到的问题 “该字符串未被识别为有效的 DateTime”

    异常详细信息: System.FormatException: 该字符串未被识别为有效的 DateTime. 解决方案: 在日期保存到Sqlite数据库时转换一个类型,比如:string _now = ...

  6. poj1002 字典树+map+查询单词出现次数

    487-3279 Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 309235   Accepted: 55223 Descr ...

  7. Python基础 数据类型 (字符串、列表、字典、元组、集合、堆、栈、树)

    数据类型有整型.布尔.字符串.列表.字典.元组.集合.堆.栈和树. 1.整型: 整型就是数字 数字表示 python2 64位机器,范围-2^63~2^63-1 超出上述范围,python自动转化为l ...

  8. JAVA提取字符串中所有的URL链接,并加上a标签

    工具类 Patterns.java 1 package com.util; 2 3 import java.util.regex.Matcher; 4 import java.util.regex.P ...

  9. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  10. 测试一下StringBuffer和StringBuilder及字面常量拼接三种字符串的效率

    之前一篇里写过字符串常用类的三种方式<java中的字符串相关知识整理>,只不过这个只是分析并不知道他们之间会有多大的区别,或者所谓的StringBuffer能提升多少拼接效率呢?为此写个简 ...

随机推荐

  1. Lintcode 157. 判断字符串是否没有重复字符

    ------------------------ 因为字符究竟是什么样的无法确定(比如编码之类的),恐怕是没办法假设使用多大空间(位.数组)来标记出现次数的,集合应该可以但感觉会严重拖慢速度... 还 ...

  2. HTML中块级元素与行内元素

    一.行内元素与块级元素 块级元素列表 <address> 定义地址 <caption> 定义表格标题 <dd> 定义列表中定义条目 <div> 定义文档 ...

  3. 使用Nito.AsyncEx实现异步锁(转)

    转载地址:http://www.cnblogs.com/1zhk/p/5269279.html Lock是常用的同步锁,但是我们无法在Lock的内部实现异步调用,比如我们无法使用await. 以下面的 ...

  4. 【leetcode】Valid Palindrome

    题目简述: Given a string, determine if it is a palindrome, considering only alphanumeric characters and ...

  5. 【leetcode】Roman to Integer

    题目描述: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range fr ...

  6. shell命令大全

    请跳转至:http://www.lampweb.org/linux/2/3.html

  7. find out the neighbouring max D_value by counting sort in stack

    #include <stdio.h> #include <malloc.h> #define MAX_STACK 10 ; // define the node of stac ...

  8. PDA手持终端扫描条码开单打印一体 结合后台电脑系统 数据同步交互解决方案

    PDA通过扫描商品条码移动开单,实现便携式办公,伴随式销售,PDA能通过WIFI无线局域网.GPRS互联网直接与主机连接,让公司业务人员能随时随地了解公司产品信息,直接扫描商品条码,进行开单.入库.库 ...

  9. iOS 之 退出app(项目)的几种方法

    路漫漫其修远兮,吾将上下而求索.也算是对程序员的一种真实写照了吧. 今天想研究一下iOS中退出项目的方法,说是今天,其实也关注并去了解很久了.只是始终找不到自己认为很好的方法.今天就先把自己了解的列举 ...

  10. RPC原理及RPC实例分析

    在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 1 2 3 4 5 6 public class ...