hdoj1004(查找众多字符串中个数最多的字符串)
Let the Balloon Rise.
最近开始刷hdoj,想通过写博客做做笔记,记录写过代码。
Problem Description
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges' favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.
This year, they decide to leave this lovely job to you.
Input
Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) -- the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.
A test case with N = 0 terminates the input and this test case is not to be processed.
Output
For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
Sample Input
5
green
red
blue
red
red
3
pink
orange
pink
0
Sample Output
red
pink
分析:
本题的目的是将众多字符串中的出现个数最多的字符串找到并输出。
1.在用c/c++编写的时候,可以使用字符型的二维数组存字符串。数组一般声明得稍大些。
2.思路是计算每一个字符串s[j]后面的与s[j]相同的字符串的个数a[j],若a[j]>max,则max=a[j];flag=j,最后flag中存储的就是个数最多的字符串第一次出现的下标。
3.用int strcmp(char[],char[])==0?来判断字符串是否相同。
下面是AC代码:
#include<stdio.h>
#include<string.h>
#define maxn 1005 //N<=1000,数组一般声明得稍大些,所以我设1005
int main(){
int n,flag,max; //max用来存当前颜色最多的字符串个数,flag存其下标
int a[maxn]; //用来存放每个字符串后面的与其相同的字符串个数
char s[maxn][16];
while(scanf("%d",&n)!=EOF&&n){
max=0;
flag=0;
for(int i=0;i<n;i++) //输入字符串
scanf("%s",s[i]);
for(int j=0;j<n;j++){ //比较两个字符串,如果相同,则对应a[j]++
a[j]=0;
for(int k=j+1;k<n;k++)
if(strcmp(s[j],s[k])==0)
a[j]++;
if(a[j]>max){
max=a[j];
flag=j;
}
}
printf("%s\n",s[flag]); //输出最大个数的字符串
}
return 0;
}
最后,我有个疑问,就是假如输入的字符串个数最多的不止一种,该怎么办?例如
red
pink
black
red
pink
我的处理方法是输出先达到max的字符串,也就是靠前的,即“red"。
hdoj1004(查找众多字符串中个数最多的字符串)的更多相关文章
- Javascript 查找字符串中出现最多的字符和出现的次数
<script type="text/javascript"> //查找字符串中出现最多的字符和出现的次数 var str = 'Thatwheneying its o ...
- hash数组快速查找一个字符串中出现最多的字符,并统计出现的次数
如何快速查找一个字符串中出现最多的字符,并统计出现的次数? 可以使用hash数组,也就是关联数组实现快速查找功能. function seek(str) { var hash = []; var ma ...
- 将1、2、3、……、n这n个连续自然数分成g组,使每组的和相等。g组中个数最多的一组有几个?
<style type="text/css"> #content { width: 600px; margin: 150px auto 0 auto; } dl dd ...
- ***用php的strpos() 函数判断字符串中是否包含某字符串的方法
判断某字符串中是否包含某字符串的方法 if(strpos('www.idc-gz.com','idc-gz') !== false){ echo '包含'; }else{ echo '不包含'; } ...
- JS 从一个字符串中截取两个字符串之间的字符串
/************************************************* 函数说明:从一个字符串中截取 两个字符串之间的字符串 参数说明:src_str 原串, start ...
- PHP判断字符串中是否包含指定字符串,支持中文哦
RT,随手写的 /** * 判断字符串中是否包含指定字符串 * @var source 源字符串 * @var target 要判断的是否包含的字符串 * @return bool */ functi ...
- 剑指Offer:从第一个字符串中删除第二个字符串中出现过的所有字符
// 从第一个字符串中删除第二个字符串中出现过的所有字符 #include <stdio.h> char* remove_second_from_first( char *first, c ...
- C# GetValueList 获得字符串中开始和结束字符串中间得值列表
/// <summary> /// 获得字符串中开始和结束字符串中间得值列表 /// </summary> /// <param name="styleCont ...
- js 判断字符串中是否包含某个字符串的方法实例
String对象的方法 方法一: indexOf() (推荐) var str = "123"; console.log(str.indexOf("3") ...
随机推荐
- JavaScript 字符串拼接 & setInterval()实现简单动画
在学习JavaScript DOM编程艺术第十章时,遇到了一个小问题: 想要实现的最终效果:一个小方块不断的向下移动. 小方块绝对定位,设置好top与left值后,写了一个动态获取方块到上方距离并在每 ...
- 33. 完全卸载oracle11g步骤
完全卸载oracle11g步骤:1. 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务.2. 开始->程序->Oracle - OraHome ...
- redis内部数据结构和外部数据结构揭秘
Redis有哪些数据结构? 字符串String.字典Hash.列表List.集合Set.有序集合SortedSet. 很多人面试时都遇到过这种场景吧? 其实除了上面的几种常见数据结构,还需要加上数据结 ...
- 轻量级Java持久化框架,Hibernate完美助手,Minidao 1.6.2版本发布
Minidao 1.6.2 版本发布,轻量级Java持久化框架(Hibernate完美助手) Minidao产生初衷? 采用Hibernate的J2EE项目都有一个痛病,针对复杂业务SQL,hiber ...
- Crontab 删除N天前日志
linux是一个很能自动产生文件的系统,日志.邮件.备份等.虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情.不用你去每天惦记着是否需要清理日志 ...
- 递归获取包下的class文件
```java(这个居然隐藏不了) public class TestUrl { public static void main(String[] args) { String pageName = ...
- vue:监听数据
1:普通的监听: data () { return { watchNum:1, } }, watch: { watchNum(newValue, oldValue) { console.log(old ...
- Spark、Hadoop、Hive相关文章
1.Spark On Yarn(HDFS HA)详细配置过程 2.Hive安装与配置详解
- 跨域(一)——CORS机制
Ajax是严格遵守同源策略的,既不能从另一个域读取数据,也不能发送数据到另一个域.但是,W3C的新标准中CORS(Cross Origin Resource Sharing)推进浏览器支持这样的跨域方 ...
- ReactiveX 学习笔记(8)错误处理和 To 操作符
Error Handling Operators Operators to Convert Observables 本文的主题为对 Observable 进行错误处理的操作符以及转换 Observab ...