HDU2025 查找最大元素最值
Posted 海岛Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU2025 查找最大元素最值相关的知识,希望对你有一定的参考价值。
查找最大元素
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 109549 Accepted Submission(s): 56919
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 查找最大元素
问题简述:(略)
问题分析:
按Markdown格式重写了题解,旧版题解参见参考链接。
这个问题的关键是开始不知道字符串中的哪个字符最大,所以需要先看一遍字符串。知道最大字符之后,对字符串再过一遍即可,该插入字符串“(max)”的地方,插入即可。插入并不需要插入到数组中,输出时插入输出就可以了。
实在想不出有更好的算法,也许这就是最好的算法。
程序说明:存储最值的变量需要初始化。求字符最大值时,初始话为最小值’\\0’。
参考链接:HDU2025 查找最大元素【入门】
题记:(略)
AC的C语言程序如下:
/* HDU2025 查找最大元素 */
#include <stdio.h>
#define N 100
char s[N + 1];
int main(void)
{
char maxc;
int i;
while (scanf("%s", s) != EOF) {
/* 查找最大字符 */
maxc = '\\0';
for (i = 0; s[i]; i++)
if (s[i] > maxc) maxc = s[i];
/* 输出结果 */
for (i = 0; s[i]; i++) {
printf("%c", s[i]);
if (s[i] == maxc) printf("(max)"); /* 最大字符则插入(max) */
}
printf("\\n");
}
return 0;
}
以上是关于HDU2025 查找最大元素最值的主要内容,如果未能解决你的问题,请参考以下文章