重新开始我的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(); } } }
好吧,这算是一个开始,记住它