hdu2025

来源:互联网 发布:国家药品数据库下载 编辑:程序博客网 时间:2024/06/14 11:11

查找最大元素

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

Problem Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
 

Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
 

Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
 

Sample Input
abcdefgfedcbaxxxxx
 

Sample Output
abcdefg(max)fedcbax(max)x(max)x(max)x(max)x(max)
 
注释:我们可以定义一个数组,如果碰到比当前的最大值还大的数,就将数组全部变成0,并且将当前位子的数组值加一,如果不相等,直接加一。输出时,如果数组值为1,则输出“(max)”。
代码:
#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;


int main()
{
   char s[105];
   while(~scanf("%s",s))
   {
       int len=strlen(s);
      char max=s[0];
      int k[105];
      memset(k,0,sizeof(k));
      k[0]=1;
       for(int i=1;i<len;i++)
       {
           if(max<s[i])
           {
               memset(k,0,sizeof(k));
               max=s[i];
               k[i]++;
           }
           else if(max==s[i])
           {
               k[i]++;
           }
       }
       for(int i=0;i<len;i++)
       {
           printf("%c",s[i]);
           if(k[i]!=0)
            printf("(max)");
       }
       printf("\n");
   }
    return 0;
}

0 0
原创粉丝点击