String Compression

Run Settings
LanguageJava
Language Version
Run Command
class Solution { public int compress(char[] chars) { int idx = 0; // Position to insert compressed characters int i = 0; // Pointer for iterating through chars while (i < chars.length) { char currentChar = chars[i]; int count = 0; // Count occurrences of the current character while (i < chars.length && chars[i] == currentChar) { count++; i++; } // Store the character chars[idx++] = currentChar; // Store the count if > 1 if (count > 1) { for (char c : String.valueOf(count).toCharArray()) { chars[index++] = c; } } } return idx; } public static void main(String[] args) { Solution solution = new Solution(); char[] chars = {'a', 'a', 'b', 'b', 'c', 'c', 'c'}; int length = solution.compress(chars); System.out.print("Compressed Length: " + length + "\nCompressed Array: "); for (int i = 0; i < length; i++) { System.out.print(chars[i]); } } }
class Solution { public int compress(char[] chars) { StringBuilder sb = new StringBuilder(); int i = 0, len = chars.length; while (i < len) { int j = i; while (j < len && chars[i] == chars[j]) { j++; } sb.append(chars[i]); int count = j -i; if (count > 1) { sb.append.(count); } i = j; } } }
Editor Settings
Theme
Key bindings
Full width
Lines