题目描述
题目链接
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
输入
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母构成。
输出
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
输入样例
abcdefgfedcba
xxxxx
输出样例
abcdefg(max)fedcba
x(max)x(max)x(max)x(max)x(max)
分析
本题不是很难,但如果从一开就进入到一个死胡同就会很难,比如说一开始你想的是先把最大元素找出来,再将(max)插入进去,那么本题的难度一下子就变大了,简易做法是,先标记出最大的元素,然后在输出时比较,如果等于这个最大元素,就输出(max),否则就输出此字符。
AC代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char str[10010] = {0};
while(scanf("%s", &str) != EOF)
{
int len = strlen(str);
char max = 0;
for (int i = 0; i < len; i++)//找出最大元素
{
if (str[i] > max)
{
max = str[i];
}
}
for (int i = 0; i < len; i++)
{
if (str[i] == max)//如果等于最大元素就输出(max)
{
printf("%c(max)", str[i]);
}
else
{
printf("%c", str[i]);
}
}
printf("\n");
}
return 0;
}