原題鏈接:http://acm.hdu.edu.cn/showproblem.php?pid=2025
在寫這道題時(shí)用c語言的話思路是很快就出來的,就是通過循環(huán)確定輸入的字符串中最大的數(shù)字是哪個(gè),并做好標(biāo)記,再通過循環(huán)輸出字符串的同時(shí)嚎研,通過剛剛的標(biāo)記,可使遇到最大的字符時(shí),在其后面輸出(max)胖烛,用C語言是比較簡(jiǎn)便的。代碼如下
#include<stdio.h>
#include<string.h>
int main(){
char a[100];
while(scanf("%s",a)!=EOF){
int i=1;
char max='A';//令A(yù)為最大
for(i=1;i<=strlen(a);i++){
if(a[i-1]>=max)
{
max=a[i-1];
}
}//通過循環(huán)走遍字符串將max標(biāo)記為最大的字母
for(i=1;i<=strlen(a);i++){
putchar(a[i-1]);
if(a[i-1]==max) printf("(max)");
}
printf("\n");
}
}
由于最近也在學(xué)習(xí)Java诅迷,因此也想著怎么嘗試使用Java完成這道題佩番,大致的思路還是和C語言差不多,但是想著要把字符串放入數(shù)組罢杉,更容易實(shí)現(xiàn)算法趟畏。但由于自己對(duì)Java不熟悉,嘗試了很多遍滩租,都沒成功赋秀,于是就查看已經(jīng)AC的Java代碼,發(fā)現(xiàn)了他們大都會(huì)用到tochararray以及StringBuilder律想,自己也不太懂猎莲,就去查詢。
tochararray是將字符串轉(zhuǎn)化為數(shù)組的方法技即,使用tochararray就不會(huì)那么麻煩將輸入的字符串存入數(shù)組了著洼。
而StringBuilder這個(gè)類,可用于處理字符串姥份,而且也可以指定字符串的最大長(zhǎng)度郭脂,給字符串分配更多的空間;也可以對(duì)字符串進(jìn)行連接澈歉,該題中使用StringBuilder的作用便是這個(gè)展鸡。對(duì)于這個(gè)類更多的使用方法在這里java中stringBuilder的用法 - My Heart Will Go On - CSDN博客,目前水平有限埃难,還在消化當(dāng)中莹弊。
最后還是參照著已經(jīng)AC的答案艱難的摸索出了Java的解題方式,
這個(gè)是參考的代碼: http://acm.hdu.edu.cn/discuss/problem/post/reply.php?postid=36851&messageid=1&deep=0
苦惱腦子還是不夠用啊