Encoding
Problem Description
Given a string containing only ‘A’ - ‘Z’, we could encode it using the following method:
Each sub-string containing k same characters should be encoded to “kX” where “X” is the only character in this sub-string.
If the length of the sub-string is 1, ‘1’ should be ignored.
Input
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only ‘A’ - ‘Z’ and the length is less than 10000.
Output
For each test case, output the encoded string in a line.
Sample Input
2
ABC
ABBCCC
Sample Output
ABC
A2B3C
分析:
将每个字母所连续的次数k, 整合成”k字母”的形式输出
错误点1: 没有仔细读题, 将整个字符串中所有同种字母整合成k的情况
错误点2: 不需要判断最后一行没有换行, 如果你不幸这么做了,就会的到一个格式错误(坑爹!)
AC代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String str = null;
int index, count;
while(num-- > 0) {
str = sc.next() + "#";
index = 0;
while(str.charAt(index) != '#') {
count = 1;
while(str.charAt(index) == str.charAt(index + 1)) {
count++;
index++;
}
if(count > 1) {
System.out.print("" + count + str.charAt(index));
} else {
System.out.print(str.charAt(index));
}
index++;
}
System.out.println();
}
sc.close();
}
}
这篇博客介绍了HDU 1020问题的解决方案,涉及字符串编码方法:连续相同字符的子串会被编码为'kX'形式,其中X是字符,k是其出现次数。题目给出输入输出样例,并分析了编程实现时可能的错误点,包括未针对连续字符整合和误处理末尾换行。
376

被折叠的 条评论
为什么被折叠?



