Given a string word, compress it using the following algorithm:
comp. While word is not empty, use the following operation:
word made of a single character c repeating at most 9 times.c to comp.Return the string comp.
Example 1:
Input: word = "abcde"
Output: "1a1b1c1d1e"
Explanation:
Initially, comp = "". Apply the operation 5 times, choosing "a", "b", "c", "d", and "e" as the prefix in each operation.
For each prefix, append "1" followed by the character to comp.
Example 2:
Input: word = "aaaaaaaaaaaaaabb"
Output: "9a5a2b"
Explanation:
Initially, comp = "". Apply the operation 3 times, choosing "aaaaaaaaa", "aaaaa", and "bb" as the prefix in each operation.
"aaaaaaaaa", append "9" followed by "a" to comp."aaaaa", append "5" followed by "a" to comp."bb", append "2" followed by "b" to comp.
Constraints:
1 <= word.length <= 2 * 105word consists only of lowercase English letters.class Solution {
public String compressedString(String word) {
word += '.'; // EOF
StringBuilder sb = new StringBuilder();
char prev = word.charAt(0);
int count = 0;
for (int i = 0; i < word.length(); i++) {
char c = word.charAt(i);
if (count == 9 || c != prev) {
sb.append(count).append(prev);
prev = c;
count = 1;
} else
count++;
}
return sb.toString();
}
}