这道题是从上个星期开始做的,看到题时觉得似曾相似,好像做过,理了一下思路敲完代码又不对,后来发现是数组用错了,之后又重新想了数组和比较用法,昨天改了一个多小时,后来样例输出全部正确,所有情况都考虑到了,还是WA,今天上午搜了一下代码,测了一下样例,发现当所有输入不一样时,输出一个即可,是我把这种情况考虑多了,我考虑的是当所有输入不一样时,不输出,改完之后立马就AC了,我只想说:我又想多了,,,,,,

题意:给出N组字符串,判断哪一个字符串出现的次数最多,并输出该字符串。当N=0时,表示结束。

输入:N代表有几个字符串,然后输入字符串

输出:一组字符串中出现最多的一个

思路:首先考虑用C++中的string数组来处理比较简单,然后定义一个string s[1000]来存放字符串和一个int型的a数组来记录每个字符串出现的次数,并把a[i]的值设为0。string  s[1000]中从i=0,j=0开始利用双重for循环来比较,if(s[i]==s[j])就让a[i]++,表示该字符串出现一次,然后依次判断每个字符串,当然如果该字符串出现多次,每一个不同位置的相同字符串出现次数一样多,不影响次数的判断。然后判断a[i中]哪个最大,也就表示s数组中哪个字符串出现的次数最多,把i赋值给k,输出s[k],程序结束。

特殊情况考虑:当所有字符串只出现一次,也就是max=1时,应该怎么办?  答案是:输出其中一个,我的程序中是输出了第一个。(刚开始WA就是错在这)

代码解释:

#include <iostream>

#include <string>

using namespace std;

int main()

{

string s[1000];                //定义字符串数组和整型数组

int a[1000];

int n;

while(cin>>n)                  //输入n表示有n个字符串

{

if(n==0)                   //当n=0时,表示程序结束

return 0;

for(int i=0;i<n;i++)      //输入n个字符串,并把a[i]设为0

{

cin>>s[i];

a[i]=0;

}

for(i=0;i<n;i++)          //双重for循环判断字符串出现次数,并用a[i]来记录

{

for(int j=0;j<n;j++)

{

if(s[i]==s[j])

a[i]++;

}

}

int max=0, k;

for(i=0;i<n;i++)         //设最大值max=0,判断a[i]的最大值即出现最多次,把最大值的下标i赋值给k

{

if(max<a[i])

{

max=a[i];

k=i;





}

}                        //本来加了一个if(max==1)的判断 即当所有的字符串只出现一次  return 0,结果是错的

cout<<s[k]<<endl;

}





return 0;

}

说了这么多,不知道大家理解木有,这道题其实是道水题,只不过对于我来说可能要多考虑一些时间,水平有限,大家将就着看吧

贴一个比较好的代码,容易理解,以作参考

#include <iostream>

#include <string>

#include <algorithm>

using namespace std;

int main()

{

int n;

while(cin>>n&&n)

{

string str[1001];

for(int i=1;i<=n;i++)

{

cin>>str[i];

}

sort(str+1, str+n+1);

int sum[1001];

for( i=1;i<=n;i++)

sum[i]=1;

int max=1;

for( i=2;i<=n;i++)

{

if(str[i]==str[i-1])

{

sum[i]+=sum[i-1];

}

if(sum[i]>=sum[max])

max=i;

}

cout<<str[max]<<endl;

}

return 0;

}

HDU1004题解分析(字符串处理)的更多相关文章

  1. leetCode 题解之字符串中第一个不重复出现的字符

    1.题目描述 Given a string, find the first non-repeating character in it and return it's index. If it doe ...

  2. Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构

    一.提高Redis使用性能秘诀 KEY尽量少的原则,能放在1个KEY的就放入1个KEY,KEY开销很大尽量减少与Redis发生的交互次数,能批量的就批量,能事务.管道的就事务.管道从业务架构分析确定使 ...

  3. HDU 1880 题解(字符串哈希)

    题面: 魔咒词典 Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  4. HDU 2023题解分析

    我想说这道题我还没弄明白我错哪了,交了20多遍一直都是Runtime Error,改了N次还是不对,后来搜了一下,说是数组开小了,又把数组开大,还不对,又改发现一个平均值求错,再改,还不对,洗洗睡吧. ...

  5. 11.15 gryz校测(题解分析报告)

    T1 心有灵犀 (cooperate) 题目大意 给你一个不超过 \(10^9\) 的数字 \(n\) 和一个交换次数上限 \(k\), 每次操作对这个 数字 \(n\) 的其中两位进行交换, 比如 ...

  6. 用javap命令反编译来分析字符串问题

    编写Test.java.编译完后生成Test.class文件,然后对该文件运行javap -c Test命令,生成字节码指令.阅读并得出结论 一.s1和s2指向常量池的不同常量 ①java代码 pub ...

  7. C语言-字符串典型问题分析

    1.典型问题一 下面的程序输出什么为什么? #include <stdio.h>      int main()   {       ] = {};       char src[] =  ...

  8. #P4770 [NOI2018]你的名字 的题解

    题目背景 实力强大的小A 被选为了ION2018 的出题人,现在他需要解决题目的命名问题. 题目描述 小A 被选为了ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外 ...

  9. 剑指 Offer 67. 把字符串转换成整数 + 字符串

    剑指 Offer 67. 把字符串转换成整数 Offer_67 题目描述 题解分析 java代码 package com.walegarrett.offer; /** * @Author WaleGa ...

随机推荐

  1. 《Pointers On C》读书笔记(第五章 操作符和表达式)

    1.C语言操作符优先级表 2.算术操作符中%(取模操作符)只适用于整型类型,其余几个操作符(+.-.*./)既适用于整型类型也适用于浮点类型.当/操作符的两个操作数都是整型时,它执行整除运算,其它情况 ...

  2. SublimeLinter

    SublimeLinter 关于代码检查 郑重推荐这个插件 官方插件库中仅有sublime3 有此插件 (对于ST2 有个sublimeLinter for ST2 没试过) SublimeLinte ...

  3. asp.net core + angular2 的环境配置

    国内整个对 asp.net core  和 angular2这些新出来的关注度不是太好.跟国外比很大差距. 我在试着去做这个整合的时候也碰到不少问题. 最后通过查阅大量资料才弄明白. 我想肯定也会有类 ...

  4. 开源搜索技术—Lucene、Solr

    Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引 ...

  5. move.js

    function startMove(obj,json,fn){ var flag=true;//标志所有运动是否到达目标值 clearInterval(obj.timer); obj.timer=s ...

  6. Javascript 递归函数

    递归函数就是在函数内部调用它自己.在Javascript 中有很多写法,值得我们学习一下(Javascript太灵活了).还是用n的 阶乘 来写例子吧. 1. 首先,来看一个最普通 最正常的写法. f ...

  7. C#复习三(Day 22)

    哈哈,又到了总结的时间了.今天还是在继续复习C#的基础语法.这次总结主要以一下小程序为主. Split()的运用 123-456---789-----123-2把类似的字符串中重复符号去掉,得到123 ...

  8. VS2013 RC 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral.........

    微软发布了vs2013的RC版本,更新了自己机器上的vs,在创建项目过程中,发现出现如题的相关错误,查了相关msdn的资料,才了解到vs已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用 ...

  9. objective-C学习笔记(七) 字符串处理

    字符串NSString NSString 是一个Unicode编码,16位字符的字符序列. NSString 是一个类,拷贝时需要注意. 初始化方法:字面量初始化.初始化器.工厂方法. NSStrin ...

  10. BZOJ 2818 GCD(欧拉函数)

    题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=37161 题意:gcd(x, y) = 质数, 1 <= x, ...