用Java 编程 如何将 字符串原地压缩。
题目描述:“eeeeeaaaff"压缩为"e5a3f2"。字符串压缩算法,把s字符串压缩处理后结果保存在res中比如:输入aaaaeefggg输出为a4e2f1g3输入h...
题目描述:“eeeeeaaaff" 压缩为 "e5a3f2"。
字符串压缩算法,把s字符串压缩处理后结果保存在res中
比如:
输入
aaaaeefggg
输出为
a4e2f1g3
输入
hhfhhhhff
输出为
h2f1h4h2 展开
字符串压缩算法,把s字符串压缩处理后结果保存在res中
比如:
输入
aaaaeefggg
输出为
a4e2f1g3
输入
hhfhhhhff
输出为
h2f1h4h2 展开
3个回答
2014-12-06
展开全部
对字符做累加,如果遇到相同字符则加1,否则输出累加的数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
String str = "aaaaaasssscccccdddddddwsaaasdcas";
int length = str.length();
List<Integer> index = new ArrayList<Integer>();
for (int i = 0; i < length - 1; i++) {
if(str.charAt(i) != str.charAt(i + 1)){
index.add(i);
}
}
if(str.charAt(length - 2) != str.charAt(length - 1)){
index.add(length - 1);
}
int start = 0;
StringBuffer result = new StringBuffer();
for (int i = 0; i < index.size(); i++) {
int end = index.get(i) + 1;
if(i != 0){
start = index.get(i - 1) + 1;
}
String temp = str.substring(start, end);
result.append(temp.charAt(0)).append(end - start);
}
System.out.println(result.toString());
最终结果是:a6s4c5d7w1s1a3s1d1c1a1s1
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
后秀名爱了慢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询