package com.freetymekiyan.algorithms.other;
/**
* Run Length Encoding
* wwwwaaadexxxxxx
* => w4a3d1e1x6
* <p>
* Tags: String
*/
class RunLengthEncoding {
public static void main(String[] args) {
String src = "wwwwaaadexxxxxx";
}
/**
* Traverse the source string
* Append current char to result first
* Get count with a loop, note the edge case
* Append count of current char to result
*/
public String encode(String src) {
StringBuilder dest = new StringBuilder();
for (int i = 0; i < src.length(); i++) {
dest.append(src.charAt(i));
int cnt = 1;
while (i + 1 < src.length() && src.charAt(i) == src.charAt(i + 1)) {
i++;
cnt++;
}
dest.append(cnt);
}
return dest.toString();
}
}