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.