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;
}
上一篇:BFS 搜索 蓝桥杯模拟赛


下一篇:Linux查看系统当前登录用户的命令,top命令看到users有多个用户登录