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语言版:
以后补🤦