String Compression

Input: aabcccccaaa Output: a2b1c5a3

by Vikram Deshmukh

JavaScript

function compress(str) {
	let result = '';
	const len = str.length;
	if(!len) return '';
	let prev = str.charAt(0);
	let count = 1;
	for(let i = 1; i < len; i++) {
		const char = str.charAt(i);
		if(prev !== char) {
			result += prev+count.toString();
			prev = char;
			count = 1;
		} else {
			count++;			
		}
	}
	result += prev+count.toString();
	return result;
}

console.log(compress("aabcccccaaa"));
console.log(compress(""));
console.log(compress("aaaaaaa"));
console.log(compress("abcdefghjiklmnopqrstuvwxyz"));