字符串压缩算法
记一次面试大厂后的总结,第一次接触大公司的面试,心中也许是有点紧张,问题回答基本中中肯肯,但是最后现场写程序题一时没做出来,感觉很遗憾。事后将此算法实现,公布于此,警示自己。程序主要是将abbbccaa 字符串转为a3b2c2a。很简单的一个程序现场没有完成,还是要努力提升,以后代码中还是不能一直百度粘贴代码。
package com.mxa.test;
public class Main {
public static void main(String[] args) {
String str = "abbcccaac";
char prev = '0';
char current = '0';
int a = 0;
int count = 0;
StringBuffer result = new StringBuffer();
while(a < str.length()) {
current = str.charAt(a);
if(prev == '0' || current == prev) {
count ++;
}else {
result.append(count == 1 ? "" : count);
result.append(String.valueOf(prev));
count=1;
}
if(a == str.length() - 1) {
result.append(count == 1 ? "" : count);
result.append(String.valueOf(current));
}
prev = current;
a++;
}
str = null;
System.out.println(result.toString());
}
}