class Solution {
public String compressString(String S) {
if (S == null || S.length() == 0) {
return "";
}
char[] c = S.toCharArray();
StringBuilder sb = new StringBuilder();
char ch = c[0];
int n = 0;
for (char a : c) {
if (ch == a) {
n++;
} else {
sb.append(ch).append(n);
ch = a;
n = 1;
}
}
sb.append(String.valueOf(ch)).append(n);
String s = sb.toString();
return S.length() > s.length() ? s : S;
}
}