杭电1020

重新开始我的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&&times==1){
				System.out.print(str.charAt(j));
			}
			}
			System.out.println();
			
		}

	}

}

 好吧,这算是一个开始,记住它

你可能感兴趣的:(杭电)