String Compression

Array / String
Key Ideas
The key idea to solve this problem is to use two pointers to compress the given string by counting the frequency of each character and updating the string in place.
Problem Number
Problem Summary
# String Compression Problem Number: 443 Difficulty: Medium Category: Array / String Checkbox: No Tags: String, Two Pointers Index: 9 Summary: The "String Compression" problem asks you to modify an input array in-place to perform basic string compression. The goal is to replace consecutive repeated characters with their count. The key pitfalls to watch out for are correctly updating the array in-place, handling edge cases, and ensuring the compressed string is not longer than the original string.
Solution Summary
The best solution to the String Compression problem is to use two pointers. We can maintain two pointers, i and j, where i points to the current character we are considering and j points to the position where we want to write the compressed character. As we iterate through the string, we compare the current character with the next character. If they are the same, we increment a count variable. If they are different, we write the compressed character, which consists of the current character and the count, at the j position. We then update j and reset the count to 1. Finally, we return the length of the compressed string, which is the value of j. This solution has a time complexity of O(n), where n is the length of the input string, as we only need to iterate through the string once. The space complexity is O(1), as we are performing the compression in-place without using any additional data structures. Overall, this solution effectively compresses the input string by counting the occurrences of consecutive characters and replacing them with the character followed by its count.
Two Pointers