这道题是从上个星期开始做的,看到题时觉得似曾相似,好像做过,理了一下思路敲完代码又不对,后来发现是数组用错了,之后又重新想了数组和比较用法,昨天改了一个多小时,后来样例输出全部正确,所有情况都考虑到了,还是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. Russia

    一.莫斯科 Moscow(Москва) 24日-周四(Day1) 1.广州 9:30公园前地铁站内集合,10:30分到达白云机场(CAN机场),12:50起飞. 18:20经停乌鲁木齐(URC机场) ...

  2. 再探Delphi2010 Class的构造和析构顺序

    发了上一篇博客.盒子上有朋友认为Class的构造和析构延迟加载.是在Unit的初始化后调用的Class的构造.在Unit的反初始化前调用的Class的析构函数. 为了证明一下我又做了个试验 unit ...

  3. rsyslogd: error during parsing file /etc/rsyslog.conf, on or before line 55: warnings occured in fil

    zjtest7-frontend:/root# rsyslogd -n rsyslogd: error during parsing file /etc/rsyslog.conf, on or bef ...

  4. POJ 1226 Substrings(后缀数组+二分答案)

    [题目链接] http://poj.org/problem?id=1226 [题目大意] 求在每个给出字符串中出现的最长子串的长度,字符串在出现的时候可以是倒置的. [题解] 我们将每个字符串倒置,用 ...

  5. Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode

    Element DOM Tree jQuery plugin – Firebug like functionality | RockingCode Element DOM Tree jQuery pl ...

  6. 怎样用U盘安装Ubuntu系统/ubuntu系统怎么安装

    Linux一直以来都是比较小众的系统,特别是在国内,用户相对Windows来说,更是少,甚至给人一种高端,复杂的印象,不过这些年来,使用 linux的人越来越多了,基本用的都是程序猿,而Ubuntu作 ...

  7. SQL Server索引进阶:第十级,索引内部结构

    原文地址: Stairway to SQL Server Indexes: Level 10,Index Internal Structure 本文是SQL Server索引进阶系列(Stairway ...

  8. SQL Server索引进阶:第七级,过滤的索引

    原文地址: Stairway to SQL Server Indexes: Level 7,Filtered Indexes 本文是SQL Server索引进阶系列(Stairway to SQL S ...

  9. webservice主流框架Axis、Axis2、XFire、CXF的比较

    http://ws.apache.org/axis/ http://axis.apache.org/axis2/java/core/ http://xfire.codehaus.org/ http:/ ...

  10. org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file

    org.apache.tomcat.util.bcel.classfile.ClassFormatException: null is not a Java .class file   在$TOMCA ...