标题Problem A: 查找最大元素
Time Limit: 1 Sec Memory Limit: 128 MB
Description
对于输入的每个字符串,查找其中的最大字母,在该字母后面插入字符串“(max)”。
Input
输入数据包括多个测试实例,每个实例由一行长度不超过100的字符串组成,字符串仅由大小写字母及数字构成
Output
对于每个测试实例输出一行字符串,输出的结果是插入字符串“(max)”后的结果,如果存在多个最大的字母,就在每一个最大字母后面都插入"(max)"。
Sample Input Copy
abcdefgfedcba
xxxxx
Sample Output Copy
abcdefg(max)fedcba
x(max)x(max)x(max)x(max)x(max)
Java代码:注释是自己在写的时候的调试,代码放到Eclipse 或者NeatBeans就很清晰了
import java.util.*;
public class Main{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
String a=sc.nextLine();
//System.out.println(a);
String b=maxString(a);
System.out.println(b);
/*char[]c=a.toCharArray();
char max=c[0];int index=0;
for(int i=0;i<c.length;i++)
{
if(c[i]>max)
max=c[i];
index=i;
}
System.out.println(max);
System.out.println(index);
*/
}
sc.close();
}
private static String maxString(String a)
{
char[] c=a.toCharArray();
char max=c[0];
int index=0;
List<Object> list=new ArrayList();
for(int i=0;i<c.length;i++)
{
list.add(c[i]);
}
for(int i=0;i<c.length;i++)
{
if(max<=c[i])
{
max=c[i];
index=i;
}
}
int k=0;
for(int i=0;i<c.length;i++)
{
//int k=0;
if(c[index]==c[i])
{
insertStr(list,i,k);
k++;
}
}
String ss="";
for(Object object:list)
{
ss+=object;
}
return ss;
}
private static void insertStr(List<Object> list, int i, int k)
{
list.add(i+1+k,"(max)");
}
}
运行结果:
为什么输出的时候还是又换了一行呢??闹不机密。。。
C语言版:
以后补🤦