import junit.framework.TestCase;
public class TCSInterviewTest extends TestCase {
private static String transform(final String input) {
final StringBuilder result = new StringBuilder(input.length());
int charCount = 0;
char lastChar = (char) -1;
for (char thisChar : input.toCharArray()) {
if (thisChar == lastChar) {
++charCount;
} else {
appendCharacterCount(result, lastChar, charCount);
charCount = 1;
lastChar = thisChar;
}
}
appendCharacterCount(result, lastChar, charCount);
return result.toString();
}
private static void appendCharacterCount(final StringBuilder result, final char chr, final int count) {
if (count > 0) {
result.append(chr);
if (count > 1) {
result.append(count);
}
}
}
public void testInterviewExample() {
assertEquals("a3b2Bc2d3", transform("aaabbBccddd"));
}
public void testEmptyString() {
assertEquals("", transform(""));
}
public void testOneChar() {
assertEquals("x", transform("x"));
}
public void testTwoChar() {
assertEquals("x2", transform("xx"));
}
public void testThreeChar() {
assertEquals("x3", transform("xxx"));
}
public void testThreeUnique() {
assertEquals("xyz", transform("xyz"));
}
public void testXYZZY() {
assertEquals("xyz2y", transform("xyzzy"));
}
}
Comments
0 B
|👍
/👎