HD2025查找最大元素

查找最大元素

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

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)

 

自己似乎一直都有点害怕做有关字符串的题目,可能是因为对于数字类的题接触比较多吧,字符串题练得少,这也是一道水题,AC了,之后又看到几个ac的代码,感觉还是就算是水题,也可以做出各种花样:

#include<iostream>
using namespace std;
int main(){
    char a[101];
    int i;
    while(cin>>a)   //这里用gets(a)
    {
        char max = a[0];
        for( i=1;a[i]!='\0';i++){
            if(a[i]>max)
                max=a[i];
        }
        for( i=0;a[i]!='\0';i++){
            if(a[i]==max)
                cout<<a[i]<<"(max)";
                else
                    cout<<a[i];
        }
        cout<<endl;
    }
    return 0;
}

 

或者这样:

#include<iostream>
#include<string>
using namespace std;
int main(){
    string a;;
    int i;
    while(cin>>a)
    {
        char max = a[0];
        for( i=1;i<a.size();i++){   //a.size()   strlen(a)
            if(a[i]>max)
                max=a[i];
        }
        for( i=0;a[i]!='\0';i++){
            if(a[i]==max)
                cout<<a[i]<<"(max)";
                else
                    cout<<a[i];
        }
        cout<<endl;
    }
    return 0;
}

在讨论区还有这样的乱世奇葩:

#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
    string s;
    int i,j;
    char max;
    while(cin>>s)
    {
        vector<char>v;
        max='A';
        for(i=0;i<s.length();i++)
        {
           if(max<s[i])  max=s[i];
           v.push_back(s[i]);
        }
        i=0;
            for(;i<v.size();i++)
        {
            if(v[i]==max)
            {
               v.insert(v.begin()+i+1,'(');
               v.insert(v.begin()+i+2,'m');
               v.insert(v.begin()+i+3,'a');
               v.insert(v.begin()+i+4,'x');
               v.insert(v.begin()+i+5,')');
               i=i+5;
            }
        }
        for(i=0;i<v.size();i++)
            cout<<v[i];
        cout<<endl;
    }
    return 0;
}
posted @ 2013-08-28 00:02  兰幽  阅读(374)  评论(0编辑  收藏  举报