755 - 487--3279

2024-08-24 04:58
文章标签 487 755 3279

本文主要是介绍755 - 487--3279,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目:755 - 487--3279


题目大意:找相同的电话号码


解题思路:将字母转换成数字,进行排序,最后统计输出。注意用scanf(“%d‘")后要接受一下数字后的回车,再接受空白行,后面的也一样。还有字符类型的数据大小和数字不一样,要进行转换(加减’0‘)。如果和我一样用 字符 - ’A‘的要注意,没有Q,所以到R之后的字符减了A还要减一。


#include<stdio.h>
#include<stdlib.h>
#include<string.h>const int N = 1000005;
const int M = 20;int t, n;
char number[N][M];void change () {for(int i = 0; i < n; i++) {for(int j = 0; j < strlen(number[i]); j++) {if(number[i][j] >= 'A' && number[i][j] <= 'Z') {int m = (int)number[i][j] - 'A';if(m >= 16)m--;number[i][j] = 2 + m / 3 + '0';}}}
}int cmp_string (const void  * _a, const void * _b) {char * a = (char*) _a;char * b = (char*) _b;return strcmp(a, b);
}int main() {int i, j;char ch;scanf("%d%*c", &t);
//	scanf("%c", &ch);while(t--) {scanf("%c", &ch);scanf("%d%*c", &n);//	scanf("%c", &ch);for(i = 0; i < n; i++) {j = 0;while(1) {scanf("%c", &ch);if(j == 3)number[i][j++] = '-';if(ch != '-' && ch != '\n')number[i][j++] = ch;else if(ch == '\n') {number[i][j] = '\0';break;}}}change();qsort(number, n, sizeof(number[0]), cmp_string);strcpy(number[n], "");int count = 0 ;bool bo = 0;for(i = 0; i < n; i++) {if(strcmp(number[i], number[i + 1]) == 0)count++;else  if(count){bo = 1;printf("%s %d\n",number[i], count + 1);count = 0;}}if(!bo)printf("No duplicates.\n");if(t)printf("\n");}return 0;
}




这篇关于755 - 487--3279的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1101515

相关文章

Codeforces Round #487 (Div. 2) C. A Mist of Florescence

问题: 构造出一个n*m的网格使得其包含 ‘A’,’B’,’C’,’D’的块, 他们的个数分别是a,b,c,d(大于等于1,小于等于100) 同一块的定义是2个格子有公共的边,而且他们的颜色也是相同的, AA:是一个块, AB是2个块,A是一个,B是一个。 构造的网格最大是50*50的,输出任何一个结果都可以 结合数据范围,可以考虑 ‘A’作为背景, 在A上填b-1个‘B’, ‘B’作为

codeforces 487 B. Strip

题意:一个数列分成若干段,满足两个条件,1.每一段长度l>=s,2.每一段mx-mi<=s,求最小段数。 分析:一个很常见的思路,先预处理每个数最左边可行位置pre[i],动态方程,dp[i]=min(dp[k]+1),pre[i]-1<=k<=i-l;预处理用set,时间n+n,动态转移用线段树维护了一个最小值。(写得较挫) #include<iostream>#include<strin

Algorithm学习笔记 --- 487-3279

首先声明,此代码没有通过poj,只是供大家研究分享,希望也能帮我找出缺点。 直接上代码,我的主要思想是用哈希映射,然后转换每个字符,考虑分为小写,大写,数字 代码如下: #include <iostream> #include<algorithm> #include<iterator> #define N 100010 using namespace std; int hash[26]={2

NYOJ 157 487-3279

题目链接~~> 做题感悟:               开始做这题时就是完全的暴力,很显然超时。之后又听说  map 可以搞定这一题,于是乎学 map 今天搞了一天 map 终于把 map 给搞懂了。其实这题还可以用另一种方法,把电话号码映射成一个数字(数字7位)。应该想到的…… 题意:          给你许多字符(包括大写字母,数字,‘-’),经过某种转换,都可以转换成一个七位的电话

《挑战程序设计竞赛》3.2.2 常用技巧-反转 POJ3276 3279 3185 1222

POJ3276 http://poj.org/problem?id=3276 题意 N头牛排成一列1<=N<=5000。每头牛或者向前(表示为F)或者向后(表示为B)。为了让所有牛都面向前方,农夫每次可以将K头连续的牛转向1<=K<=N,求操作的最少次数M和对应的最小K。 思路 所有情况穷举O(2^N)肯定超时。 顺序考虑每头牛的反转方向能不能行呢?因为想改变一头牛的方向就必定影响k头

UVa 755 / POJ 1002 / East Central North America 1999 487--3279 (排序)

755 - 487--3279 Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=696 http://poj.org/problem?id=1002 Busines

开关问题 POJ 3276 POJ 3279 POJ 1222

POJ 3276 题目链接:http://poj.org/problem?id=3276 题意:N个牛 ,B表示朝后, F表示朝前,每次可以选择连续的K个牛反转方向,问如何选择K,使得操作数M最少,K也应尽量小。 参考博客:http://www.cnblogs.com/neopenx/p/4071801.html ①从第一头牛开始,如果朝前,不管了。看下一头牛,如果朝后反转K长度区间

指定linux文件夹下所有文件赋权命令“chmod -R 755”

仓库:Ai-trainee/GPT-Prompts-Hub 下面我们假设要为:/opt/robot/lib/robot_control/下所有子文件赋权 如果要为 robot_control 目录中的所有文件分配权限(在 Linux 术语中也称为“更改文件权限”或“chmod”),则可以使用 chmod 命令在 Linux 终端中。 下面通过逐步类比来理解 Linux 中文件权限的概念:

linux chmod 777 dev,Linux chmod +755和chmod +777 各是什么意思呢?

代表可写可执行。 chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。一般是三个数字:第一个数字表示文件所有者的权限第二个数字表示与文件所有者同属一个用户组的其他用户的权限第三个数字表示其它用户组的权限。 权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4

POJ - 1002 487-3279

1.题面 http://poj.org/problem?id=1002 2.解题思路 这道题目我是做过的,这次居然没做出来,天哪,好像是因为人太困了写的时候出现了无数个BUG,比如在嵌套的循环中两层for都使用了i作为变量 然后,这道题目并不难,只是有些繁琐,做好了字母到数字之间的映射之后,要么讲将这个只有7位数的数字转化成一个int存储,要么将它用string存储 之后爱用map用m