hdoj 1004 学习思路
2016-08-02 09:14
351 查看
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
我的代码
题目逻辑很简单,就是需要选择相应的数据结构,看了别人提交的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[1000]; char boloon[1000][16]; while (scanf("%d", &n) != EOF){ if (n) { for (i = 0; i < n; i++) { num[i] = 0; scanf("%s", boloon[i]); num[i] += 1; for (j = 0; j < i; j++) { if (strcmp(boloon[i], boloon[j]) == 0) { num[i] += 1; } } } max = 0; for (i = 0; i < n; i++) { if (max < num[i]) { max = num[i]; j = i; } } printf("%s\n", boloon[j]); } } }
相关文章推荐
- Android开发中如何保证activity的生命活性!
- poj 2516 Minimum Cost(k次最小费用最大流)
- 剑指Offer:替换空格
- 观察者模式Observer
- 合并压缩技术
- 前言
- jquery的layer弹出层框架,如果设置 iframe弹出一个页面里是表单提交,提交完怎么关闭弹出层
- nyoj 27 水池数目【DFS】
- ArcGIS Engine开发之旅01---产品组成、逻辑体系结构
- zabbix监控linux 以及监控mysql
- poj 1113(凸包)
- Cocos2d-JS 3.12版本Windows环境配置
- 【代码笔记】服务器检查浏览器是否关闭
- AngularJS基础 ng-init 指令简单示例
- SSH无密码登录设置
- java.lang.NoClassDefFoundError: com/sun/tools/internal/xjc/api/xjc????
- Juniper SSG-5 端口映射命令行设定
- Activity的启动模式及回退栈的概念
- csharp:asp.net Importing or Exporting Data from Worksheets using aspose cell
- js事件总结