查找最大元素

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 63900    Accepted Submission(s): 34037

Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
Sample Input

abcdefgfedcba xxxxx
Sample Output

abcdefg(max)fedcba x(max)x(max)x(max)x(max)x(max)
Author
lcy
Source
C语言程序设计练习(四)

问题链接:HDU2025 查找最大元素。

问题简述:参见上文。

问题分析

  这个问题的关键是开始不知道字符串中的哪个字符最大,所以需要先看一遍字符串。知道最大字符之后,对字符串再过一遍即可,该插入字符串“(max)”的地方,插入即可。实在想不出有更好的算法,也许这就是最好的算法。

程序说明

  对于这个题,不用指针来做,就不够专业。用字符数组和字符串函数来做,只能算入门级别的做法。

  做这个程序几次AC没过,问题出在没有每次都把变量max初始化上,好在有高人指点。看似简单的问题,吃亏往往在细节上。

  这里给出了两种实现方法,一是使用指针,二是使用数组。

AC的C语言程序如下(数组):

 

/* HDU2025 查找最大元素 */#include <stdio.h>#define N 100
char s[N +1];int main(void)
{char max;int i;while(scanf("%s", s) != EOF) {max = '\0';// 查找最大字符for(i=0; s[i]; i++)if(s[i] > max)max = s[i];// 输出for(i=0; s[i]; i++) {printf("%c", s[i]);if(s[i] == max)       // 最大字符则插入(max)printf("(max)");}printf("\n");}return 0;
}

AC的C语言程序如下(指针):

/* HDU2025 查找最大元素 */#include <stdio.h>int main(void)
{char s[100+1], max, *t;while(scanf("%s", s) != EOF) {max='\0';// 查找最大字符t = s;while(*t) {if(*t > max)max = *t;t++;}// 输出t = s;while(*t) {printf("%c", *t);if(*t == max)       // 最大字符则插入(max)printf("(max)");t++;}printf("\n");}return 0;
}

HDU2025 查找最大元素【入门】相关推荐

  1. HDU2025 查找最大元素

    问题链接:HDU2025 查找最大元素.这是一个入门训练题,用C语言编写程序. 问题简述:参见上述链接. 问题分析:这个问题的关键是开始不知道字符串中的哪个字符最大,所以需要先看一遍字符串.知道最大字 ...

  2. HDU2025 查找最大元素【最值】

    查找最大元素 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...

  3. java 二分查找_计算机入门必备算法——二分查找法

    1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...

  4. 【Groovy】集合遍历 ( 使用集合的 find 方法查找集合元素 | 闭包中使用 == 作为查找匹配条件 | 闭包中使用 is 作为查找匹配条件 | 闭包使用 true 作为条件 | 代码示例 )

    文章目录 一.使用集合的 find 方法查找集合元素 1.闭包中使用 == 作为查找匹配条件 2.闭包中使用 is 作为查找匹配条件 3.闭包中使用 true 作为查找匹配条件 二.完整代码示例 一. ...

  5. hdu 2025:查找最大元素(水题,顺序查找)

    查找最大元素 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Sub ...

  6. 1.12 Java数组使用binarySearch()方法查找指定元素

    查找数组是指从数组中查询指定位置的元素,或者查询某元素在指定数组中的位置.使用 Arrays 类的 binarySearch() 方法可以实现数组的查找,该方法可使用二分搜索法来搜索指定数组,以获得指 ...

  7. 【小米校招笔试】一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置

    2016年小米校招笔试第二题(西安站) 2 现有一个数组是由有序数组经过n次循环移动后所得,请你用最快速度查找某个元素位置(如1234568,向右移动3次后为67812345). 参考解法(Java版 ...

  8. Jsoup(二)-- Jsoup查找DOM元素

    一.Jsoup查找DOM元素的方法 getElementById(String id) 根据id 来查询DOM getElementsByTag(String tagName) 根据tag 名称来查询 ...

  9. 每天一道LeetCode-----有序数组右移n位后查找某个元素

    Search in Rotated Sorted Array 原题链接Search in Rotated Sorted Array 一个无重复项的递增序列右移了一定距离,在右移后的序列中查找是否有某个 ...

最新文章

  1. 特写李飞飞:她激励了人工智能的发展,更要给人工智能赋予人的价值
  2. 牛客 - 树上博弈(思维)
  3. Machine Learning On Spark——基础数据结构(二)
  4. iPhone屏幕做一个最上层全屏幕的layer
  5. 业务多变的公司上云后蒸蒸日上
  6. jmap报错unknown CollectedHeap type : class sun.jvm.hotspot.gc_interface.CollectedHeap
  7. 诗与远方:无题(五十四)- 曾经写给妹子的一首诗
  8. Luogu4725 【模板】多项式对数函数(NTT+多项式求逆)
  9. 毕业论文管理系统——面向对象方法
  10. Gauss-Jordan法求逆矩阵
  11. SU(seismic unix)常用操作001——sgy文件与su文件的相互转化
  12. 移动端H5页面编辑器开发实战--原理结构篇
  13. android textview截断,Android Textview文字在底部被截断
  14. python初体验-hello world答案_Python初体验(一)—【配置环境变量】【变量】【input】【条件语句】【循环语句】...
  15. Linux系统/etc/resolv.conf文件为只读模式,且无法更改权限
  16. 大家注意了,猪八戒网上有个骗子
  17. Terra Gate 安装
  18. 代码战争之友人与敌人
  19. GaussDB数据类型介绍
  20. Qt程序打包成安装包exe

热门文章

  1. vscode regex previewer插件怎么用_分享五款开挂神器!助你效率倍增!做PPT怎么能不会用插件?...
  2. 5.3.6 原子操作对非原子的操作排序
  3. 三、RabbitMQ消息发布时的权衡
  4. Java求一个数的质因数
  5. spring配置数据源错误记录
  6. 拼装sql_2020最新最全面的SQL优化干货总结
  7. 图像处理:Canny边缘检测算法原理(一)
  8. Qt之HTTP——发送HTTP请求
  9. [C++11] 新特性总结
  10. Linux 五种I/O模型