String Compression

Compress a string as character followed by count (basic run-length encoding).

JavaIntermediate
Java
import java.util.Scanner;

public class Main {
    public static String compress(String s) {
        if (s.isEmpty()) return s;
        StringBuilder sb = new StringBuilder();
        char prev = s.charAt(0);
        int count = 1;
        for (int i = 1; i < s.length(); i++) {
            char c = s.charAt(i);
            if (c == prev) {
                count++;
            } else {
                sb.append(prev).append(count);
                prev = c;
                count = 1;
            }
        }
        sb.append(prev).append(count);
        return sb.toString();
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String s = sc.nextLine();

        System.out.println("Compressed: " + compress(s));
        sc.close();
    }
}

Output

Enter a string: aaabbc
Compressed: a3b2c1

We count consecutive equal characters and append character+count.