hdoj 1004 学习思路

hdoj 1004题目大概讲的是,将输入的字符串根据输入次数多少,输出出现次数最多的字符串。

题目逻辑很简单,就是需要选择相应的数据结构,看了别人提交的discuss,明显发现可以使用多种数据结构解这道题。

其实我本是打算用结构体来解的,但是结构体还是不太熟,并又看了别人的代码就不在自行考虑了。

关键是用两个数组,一个是 char boloon[1000][16] ,另一个是 int num[1000] ,

取1000是因为输入要求N(0<N ≤ 1000), 16 是因为输入字符串大小在0~15,再加上\0,总共16.

在运行程序时,将写入的字符串存入 boloon[i], 相应的s[i] 加一,然后将此次输入的字符串与之前已经存入所有字符穿相比,出现过相同的一次就将num[i]加一,

最后求出最大的num[i]的最大的i, 出现次数最多的就是 boloon[i]

参考代码

http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=25780&messageid=1&deep=0

我的代码

#include <stdlib.h>
#include <stdio.h>
#include <string.h> int main(void)
{
int i, n, j, max, num[];
char boloon[][]; while (scanf("%d", &n) != EOF){
if (n) {
for (i = ; i < n; i++) {
num[i] = ;
scanf("%s", boloon[i]);
num[i] += ;
for (j = ; j < i; j++) {
if (strcmp(boloon[i], boloon[j]) == ) {
num[i] += ;
}
}
} max = ;
for (i = ; i < n; i++) {
if (max < num[i]) {
max = num[i];
j = i;
}
}
printf("%s\n", boloon[j]); }
}
}
上一篇:Zabbix Server appliance 4.0.2一键安装(第一篇)


下一篇:自动寻路NavMesh