重新开始我的acm之路,因为现在笔试什么的动不动考算法。不好好练练,面试官都见不到,怎么吹项目经验。
今天写了一道water算是练练手。但是这次练手不怎么顺利。
开始的时候把题目意思理解错了,以为需要寻找字符串中所有相同的字母,并且排序。最后写的好好地怎么也不过。后来搜了一下别人的答案,发现时求子串中相同的字母。没看清题意害人啊,以后可不能这么粗心。
搞清楚了题目意思之后,一想,很简单,但是一直出现越界错误。因为我是使用字符串的charAt并没有使用数组,一直出现越界。
import java.util.Scanner;
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int n;
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
for(int i = 0;i<n;i++){
String str = scanner.next();
for(int j =1;j<str.length();j++){
int times = 1;
while(str.charAt(j)==str.charAt(j-1)){
times++;
j++;
if(j>=str.length())break;
}
if(times>1){
System.out.print(times);
}
System.out.print(str.charAt(j-1));
//判断是不是最后一个字符,并且没有相同的字符。
if(j==str.length()-1&×==1){
System.out.print(str.charAt(j));
}
}
System.out.println();
}
}
}
好吧,这算是一个开始,记住它