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 查找最大元素最值的主要内容,如果未能解决你的问题,请参考以下文章

HDU 2025 查找最大元素

查找最大元素(hdu2025)

HDOJ2025_查找最大元素

hdu 3530 单调队列最值

hdu 2025

hdu2025