Problem Statement
Definition
- Class:
- RunLengthPlus
- Method:
- compress
- Parameters:
- String
- Returns:
- String
- Method signature:
- String compress(String s)
- (be sure your method is public)
Constraints
- s will contain between 1 and 50 uppercase letters, inclusive.
Examples
"AAABBCDDDDDDDDDD"
Returns: "3A2BC10D"
"XAABCBCBCAABCBCBCX"
Returns: "X2(2A3(BC))X"
"ABCBACBABCBABCABACACBCBABACBCBBABACBACBCACBBAC"
Returns: "ABCBA2(CBAB)CABACACBCBABACBC2BA2(BAC)BCAC2BAC"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: "50A"
"XXXXXSSSSQQPMMGGGIIIIIIPMMGGGIIIIIIPMMGGGIIIIII"
Returns: "5X4S2Q3(P2M3G6I)"
"AABBAABBAABBAABBAABBAAAAAAAAAAAAAAAAAAAAA"
Returns: "5(2A2B)21A"
"AAAAACCAAAAABBBAAAAAABBBAAAAAABBBAAAAAABBBA"
Returns: "5A2C4(5A3BA)"
"BBBBDDDDDCCCDBBBBDDDDBBBBBDDDDBBBBBDDDDBBBBBDDDDB"
Returns: "4B5D3CD4(4B4DB)"
"DDDBBBBBBAABCABCBBBBAABCABCBBBBAABCABCBBBBAABCABC"
Returns: "3D2B4(4B2ABCABC)"
"EEEEEDDFEEEEEDDFEEEEEDDFEEEEEDDFEEEEEDDFFF"
Returns: "5(5E2DF)2F"
"DDDFDDDFDDDFCACACABCACACABCACACABCACACABCACACABCD"
Returns: "3(3DF)5(3(CA)B)CD"
"FFFHHHHHGGBGGBGGBHHGGBGGBGGBHHGGBGGBGGBHHGGBGGBGGB"
Returns: "3F3H4(2H3(2GB))"
"DDDDAAGGDDDDAAGGDDDDAAGGDDDDAAGGDDDDAAGGFFFF"
Returns: "5(4D2A2G)4F"
"CCCCAAAAEEEEAAEEEEAAEEEEAAAAAAEEEEAAEEEEAAEEEEAA"
Returns: "4C2(4A3(4E2A))"
"EEEEEJCCJCCJCCJCCBBBJCCJCCJCCJCCBBBJCCJCCJCCJCCBBB"
Returns: "5E3(4(J2C)3B)"
"GGAAGGAACCGGAAGGAACCGGAAGGAACCGGAAGGAACCJJ"
Returns: "4(2(2G2A)2C)2J"
"GGDGGDAAGGDGGDAAGGDGGDAAGGDGGDAAGGDGGDAAF"
Returns: "5(2(2GD)2A)F"
"CCCCHHHCCCCHHHCCCCHHHCCCCHHHNNNNHHHNNNNHHH"
Returns: "4(4C3H)2(4N3H)"
"KNAAAGGAAAGGAAAGGNAAAGGAAAGGAAAGGNAAAGGAAAGGAAAGG"
Returns: "K3(N3(3A2G))"
"JJJJJJJJJJJJKJJJJJJJJJJJJKJJJJJJJJJJJJKMMMMMCC"
Returns: "3(12JK)5M2C"
"QQQLLQQQLLQQQLLQQQLLQQQLLCCCCFFFFNNNNEEEE"
Returns: "5(3Q2L)4C4F4N4E"
"FFAAAARAAAARFFAAAARAAAARFFAAAARAAAARGGGGJGGGGJ"
Returns: "3(2F2(4AR))2(4GJ)"
"IAIACCCIAIACCCIAIACCCIAIACCCIAIACCCNNNNK"
Returns: "5(IAIA3C)4NK"
"MMMMAAASAAASAAASPAAASAAASAAASPAAASAAASAAASPCCC"
Returns: "4M3(3(3AS)P)3C"
"BQQAIIIIIIIIIIIIIIAIIIIIIIIIIIIIIAIIIIIIIIIIIIII"
Returns: "B2Q3(A14I)"
"AAAEEEQEEEQEEEQEEEQEEEQIIEEEQEEEQEEEQEEEQEEEQII"
Returns: "3A2(5(3EQ)2I)"
"DDCDDCSWWDDCDDCSWWDDCDDCSWWDDCDDCSWWNNNN"
Returns: "4(2(2DC)S2W)4N"
"EEEEEDDEEEEEDDEEEEEDDWBBKKKBBKKKBBKKKBBKKK"
Returns: "3(5E2D)W4(2B3K)"
"HHHHWWWRWWWRWWWRAWWWRWWWRWWWRAWWWRWWWRWWWRA"
Returns: "4H3(3(3WR)A)"
"QQQGGGYYGGGYYGGGYYGGGYYYGGGYYGGGYYGGGYYGGGYYY"
Returns: "3Q2(4(3G2Y)Y)"
"AAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: "3A45B"
"AAAAACCCCCACAAAAACCCCCACAAAAACCCCCACAAAAACCCCCACB"
Returns: "4(5A5CAC)B"
"CBBBCBBBCBBBCBBBCBBBCCCCBBBCCCCBBBCCCCBBBCCCCBBB"
Returns: "5(C3B)4(4C3B)"
"BBBBDDDBBBBDDDBBBBDDDBEBEBEBEBEDDBEBEBEBEBEDD"
Returns: "3(4B3D)2(5(BE)2D)"
"CCCCCEEFFCCCCCEEFFCCCCCEEFFCCCCCEEFFCCCCCEEFFAAA"
Returns: "5(5C2E2F)3A"
"AAABBBAAABBBAAABBBAAABBBAAABBBEEEEEGGGGDEDE"
Returns: "5(3A3B)5E4GDEDE"
"HHAAGGAAGGHHAAGGAAGGHHAAGGAAGGHHAAGGAAGGEEE"
Returns: "4(2H2(2A2G))3E"
"EEEBEEEBEEEBEEEBEEEBDDDEEEBEEEBEEEBEEEBEEEBDDDE"
Returns: "2(5(3EB)3D)E"
"DDFCFCFCDDFCFCFCDDFCFCFCDDFCFCFCDDFCFCFCHH"
Returns: "5(2D3(FC))2H"
"JJJJJJJJJJJJJJJJJJJJAJJJJJJJJJJJJJJJJJJJJAHHHH"
Returns: "2(20JA)4H"
"LLJJJLLJJJLLJJJLLJJJBLAALAALAABLAALAALAA"
Returns: "4(2L3J)2(B3(L2A))"
"FFFFGGMKKMKKMKKGGMKKMKKMKKGGMKKMKKMKKGGMKKMKKMKK"
Returns: "4F4(2G3(M2K))"
"KKKJKKKJKKKJMMNAAAAAKKHAAAAAKKHNAAAAAKKHAAAAAKKH"
Returns: "3(3KJ)2M2(N2(5A2KH))"
"BBBOHOHKKOHOHKKBBBOHOHKKOHOHKKJJJHHHJJJHHHJJJHHH"
Returns: "2(3B2(OHOH2K))3(3J3H)"
"MMMMALGGGDGGGDALGGGDGGGDALGGGDGGGDALGGGDGGGD"
Returns: "4M4(AL2(3GD))"
"KKKKKGGGQGGGQKKKKKGGGQGGGQDDDDFFFDDDDFFFDDDDFFF"
Returns: "2(5K2(3GQ))3(4D3F)"
"MMMMMIIMMMMMIIDDDDJJMMMMMIIMMMMMIIDDDDJJQQQQEEE"
Returns: "2(2(5M2I)4D2J)4Q3E"
"OOKOOKOOKOOKIOOKOOKOOKOOKIOOKOOKOOKOOKIG"
Returns: "3(4(2OK)I)G"
"DCPPPPMPPPPMDCPPPPMPPPPMTTTTBBBTTTTBBBTTTTBBB"
Returns: "2(DC2(4PM))3(4T3B)"
"TDDDJJJJJJJJJJJJKKKMKKKMKKKMOKKKMKKKMKKKMO"
Returns: "T3D12J2(3(3KM)O)"
"RBRBRBRBRBMMRBRBRBRBRBMMRBRBRBRBRBMMLKKVLKKV"
Returns: "3(5(RB)2M)2(L2KV)"
"NNNNNTNNNNNTNNNNNTIIINNNNNTNNNNNTNNNNNTIIIQ"
Returns: "2(3(5NT)3I)Q"
"RLLLLLLLLLLLLRLLLLLLLLLLLLRLLLLLLLLLLLLSSS"
Returns: "3(R12L)3S"
"IIIIIQAAIIIIIQAAIIIIIQAAIIIIIQAAIIIIIQAAYYY"
Returns: "5(5IQ2A)3Y"
"WWWWWQSSSEESSSEEQSSSEESSSEEQSSSEESSSEEQSSSEESSSEE"
Returns: "5W4(Q2(3S2E))"
"AAABBBBBBBBBBAABBBBBBBBBBAABBBBBBBBBBAABBBBBBBBBB"
Returns: "A4(2A10B)"
"CCBBBBCCCCCACCCCCACCCCCAABBBBCCCCCACCCCCACCCCCAA"
Returns: "2C2(4B3(5CA)A)"
"CCCCDCCCCDCCCCDCCCCDDDCCCCDCCCCDCCCCDCCCCDDDDD"
Returns: "2(4(4CD)2D)2D"
"EAEAEEEEDDDDCDDDDCEEEEDDDDCDDDDCEEEEDDDDCDDDDC"
Returns: "EAEA3(4E2(4DC))"
"EEEEECCCEEEEECCCEEEEECCCEEEEECCCEEEEECCCEE"
Returns: "5(5E3C)2E"
"BBBBDBBBBDBBBBDEBBBBDBBBBDBBBBDEBBBBDBBBBDBBBBDEB"
Returns: "3(3(4BD)E)B"
"CFCFCFCFCFAHCFCFCFCFCFAHCFCFCFCFCFAHHHEE"
Returns: "3(5(CF)AH)2H2E"
"GGGCIIDIIDIIDGGGCIIDIIDIIDGGGCIIDIIDIIDIIII"
Returns: "3(3GC3(2ID))4I"
"IDDDIDDDIDDDIDDDIIIIIDDDEEIIIIIDDDEEIIIIIDDDEE"
Returns: "4(I3D)3(5I3D2E)"
"BBBBIIIDDDDBDDDDBIIIDDDDBDDDDBIIIDDDDBDDDDBDDD"
Returns: "4B3(3I2(4DB))3D"
"BBIIIIEEEBBHIIIIEEEBBHIIIIEEEBBHIIIIEEEBBH"
Returns: "2B4(4I3E2BH)"
"BBBMMMMBMMMMBBBBMMMMBMMMMBBBBMMMMBMMMMBE"
Returns: "3(3B2(4MB))E"
"IIIJJIIIJJIIIJJIIIJJIIIJJCCCCCDCCCCCDCCCCCD"
Returns: "5(3I2J)3(5CD)"
"CCCCCEEECCCCCEEECCCCCEEECCCCCEEECCCCCEEEFF"
Returns: "5(5C3E)2F"
"LLLLPPPLLLLPPPLLLLPPPLLLLPPPAAAAAOAAAAAOAAAAAO"
Returns: "4(4L3P)3(5AO)"
"LLJEJEJEJEQQJEJEJEJEQQBBJEJEJEJEQQJEJEJEJEQQBB"
Returns: "2L2(2(4(JE)2Q)2B)"
"QQQQQAAAABHKHKKKHKHKKKHKHKKKHKHKKKHKHKKKBB"
Returns: "5Q4AB5(HKH3K)2B"
"DDLRRRRRGRRRRRGCCRRRRRGRRRRRGCCRRRRRGRRRRRGCC"
Returns: "2DL3(2(5RG)2C)"
"GGGGGGGGGGHGGGGGGGGGGHGGGGGGGGGGHGGGGGGGGGGHKKKIIC"
Returns: "4(10GH)3K2IC"
"KQQLLLKQQLLLKQQLLLKQQLLLKQQLLLTTTTTAAATTTTTAAA"
Returns: "5(K2Q3L)2(5T3A)"
"KRRKRRKRRKRRRRRKRRKRRKRRKRRRRRKRRKRRKRRKRRRRRKKK"
Returns: "3(4(K2R)3R)3K"
"VVVVVFVVVVVFVVVVVFVVVVVFVVVVVFFFFMMFFFMM"
Returns: "5(5VF)2(3F2M)"
"HDHDHDHDHDDDHDHDHDHDHDDDHDHDHDHDHDDDLLLL"
Returns: "3(5(HD)2D)4L"
"HHSSSSSQSSSSSQIIJJJJJBGJJJJJJBGJJJJJJBGJ"
Returns: "2H2(5SQ)2I3(5JBGJ)"
"CCCPPPPKKPPPPKKPPPPKKCCCPPPPKKPPPPKKPPPPKKUU"
Returns: "2(3C3(4P2K))2U"
"ABCABCAABCABCAAABCABCAABCABCAAA"
Returns: "2(2(2(ABC)A)A)A"
"RRRRRSSSSTSSSSTSSSSTSSSSTSSSSTSSSSTSSSSTSSSST"
Returns: "5R8(4ST)"
"ABCABCABCABCABCDEFGHABCDEFGH"
Returns: "4(ABC)2(ABCDEFGH)"