213. 字符串压缩
设计一种方法,通过给重复字符计数来进行基本的字符串压缩。
例如,字符串 aabcccccaaa 可压缩为 a2b1c5a3 。而如果压缩后的字符数不小于原始的字符数,则返回原始的字符串。
可以假设字符串仅包括 a-z 的字母。
样例
样例 1:
输入:str = "aabcccccaaa"
输出:"a2b1c5a3"
样例 2:
输入:str = "aabbcc"
输出:"aabbcc"
public class Solution {
/**
* @param originalString: a string
* @return: a compressed string
*/
public String compress(String originalString) {
// write your code here
char[] string=originalString.toCharArray();
StringBuilder stringBuilder=new StringBuilder();
int flag=1;
for (int i = 1; i < string.length; i++) {
if (flag== 1){
stringBuilder.append(string[i-1]);
if (string[i]==string[i-1]){
flag++;
}else{
stringBuilder.append(flag);
}
}else {
if (string[i]==string[i-1]){
flag++;
}else{
stringBuilder.append(flag);
flag=1;
}
}
}
stringBuilder.append(flag);
return stringBuilder.toString().length()>=originalString.length()?originalString:stringBuilder.toString();
}
}