JeffGrigg icon

TCSInterviewTest

JeffGrigg | PRO | 01/30/19 10:45:32 PM UTC | 0 ⭐ | 1265 👁️ | Never ⏰ | []
Java 5 |

0 B

|

None

|

0 👍

/

0 👎

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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎