【发布时间】:2020-11-10 13:05:02
【问题描述】:
我一直在尝试对字符串数组进行游程编码压缩,但我没有得到预期的结果):
这是我的代码
static void encode(final String input) {
String[] values = input.split(" ");
StringBuilder sb = new StringBuilder();
String lastElement = "";
long count = 0;
for(String e : values) {
if(e.equals(lastElement)) {
count++;
sb.append(" " + count + " ");
} else {
sb.append(e);
lastElement = e;
count = 0;
}
}
System.out.println(sb.toString());
}
我的意见:encode("Smile Smile Smile JO JO");
我得到的输入:Smile 1 2 JO 1
但没想到会是这样,我想得到的结果是:
Smile 2 JO 1
谁能帮帮我?
【问题讨论】:
-
那不是run-length encoding。游程编码采用像“aaaabbccc”这样的单个值的重复,并使其类似于“4a2b3c”。也不是LZ77。在弄清楚如何对其进行编码之前,您需要考虑如何正确解码您的格式。你的格式没有多大意义。
标签: java compression