Problem Statement
Definition
- Class:
- PalindromeDecoding
- Method:
- decode
- Parameters:
- String, int[], int[]
- Returns:
- String
- Method signature:
- String decode(String code, int[] position, int[] length)
- (be sure your method is public)
Constraints
- code will contain between 1 and 10 characters, inclusive.
- code will contain only digits ('0'-'9') and letters ('a'-'z', 'A'-'Z').
- position will contain between 0 and 10 elements, inclusive.
- length will contain the same number of elements as position.
- position and length will always refer to a valid substring in the (partially decoded) string code.
- Each element of length will be positive.
- The return value will have at most 1000 characters.
Examples
"ab"
{0}
{2}
Returns: "abba"
The decoding step selects the whole string and appends it in reversed form.
"Misip"
{2,3,1,7}
{1,1,2,2}
Returns: "Mississippi"
The decoding steps are: "Misip" -> "Missip" -> "Misssip" -> "Mississip" -> "Mississippi"
"XY"
{0, 0, 0, 0}
{2, 4, 8, 16}
Returns: "XYYXXYYXXYYXXYYXXYYXXYYXXYYXXYYX"
In this example the length of the string doubles in each decoding step.
"TC206"
{1,2,5}
{1,1,1}
Returns: "TCCC2006"
"nodecoding"
{}
{}
Returns: "nodecoding"
"0123456789"
{0,0,0,0,0,0,0,0,0,0}
{10,20,40,80,160,320,357,1,1,1}
Returns: "0000123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765433456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432102100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210012345678998765432100123456789987654321001234567899876543210"
length 1000
"Xml"
{1,1}
{2,2}
Returns: "Xmllmlm"
"4"
{0,1,2,3,2,6,3,1,15,8}
{1,1,1,1,3,1,6,14,5,23}
Returns: "444444444444444444444444444444444444444444444444444444444"
"EdWA"
{2,0,5,1,2,3,19,8,23}
{2,2,1,3,6,3,1,9,3}
Returns: "EddEEddEEdWWddEEddEEddWWdEEdWAAAAW"
"BX3U72vryn"
{8,2,11,6,15}
{2,5,3,12,2}
Returns: "BX3U72vv27U3ryyr33rnn3ryyr3U72vvny"
"kT5"
{2,0,1,6,4,3,4,13,6}
{1,1,2,1,4,1,3,2,9}
Returns: "kkTTTk55kT5555555555Tk5555k"
"nHo"
{0,4,0,6,1,5,9}
{2,1,3,3,1,7,4}
Returns: "nHHHHHnnoooooooooooonnHn"
"r7QGlw3m"
{7,4,2,0,26,30,10,53,60}
{1,4,7,16,2,7,18,4,5}
Returns: "r7QGlw3mmmm3wlGQQGlw3mmmm3wllw3mmmm3wlGQQGlw3mlwGQ7r3wllwwllw3r7QQ7r3wGm"
"d6eHD9Q"
{}
{}
Returns: "d6eHD9Q"
"1MdMKdo07a"
{2,6,1,19,36,33}
{4,5,11,8,1,2}
Returns: "1MdMKddKMdoooodMKddKMdMdMKddKMdMdMKKM077a"
"M30"
{1,0,6,4,10,10,4,9,9}
{1,4,1,5,1,1,1,5,11}
Returns: "M33000333MM333333MM33MM333333MM30"
"htfA"
{1,2,4,2,0,16,26,20,50,10}
{2,4,1,9,7,8,9,7,1,28}
Returns: "htffttAAttffthAtfffftAAttAAAAttAAttffffffttAAttAAAAttAAtfffftAhtffftfffftfffftAA"
"Toy"
{1,3,1,7,11,9}
{2,2,5,1,1,2}
Returns: "Toyyoooooyyyyooy"
"uajlLcDSY"
{1}
{7}
Returns: "uajlLcDSSDcLljaY"
"1QEjTeEpG6"
{5,5,9,6,2,3,47,7}
{1,5,3,7,17,25,7,18}
Returns: "1QEjTeeEpGGppppGGpEEpGGppppGGpEEpGGppppGGpEppGGppppGGpEEpGGppppGGpEeeTjGGjTeeEppEeeTjEeGGEee6"
"8L1PMa1k2l"
{3,1,7}
{7,7,1}
Returns: "8L1PMa1kkk1aMP1L2ll2k1aMP"
"7kfcAyDDkz"
{1,10,3,10}
{5,4,3,2}
Returns: "7kfcAyyAcyAccAfkDDkkDDkz"
"S"
{0}
{1}
Returns: "SS"
"k1Z1whlTQ"
{8,8,1,17,11}
{1,2,7,2,8}
Returns: "k1Z1whlTTlhw1Z1QQQQQQQQ1Z1wQQ"
"53YdmdRk"
{4,7,6,8,5,11,13}
{1,1,2,1,1,2,3}
Returns: "53YdmmmdRRRdRRdkkdR"
"w0qwyje"
{0,7,1,4,5,18,22,3,9}
{3,2,4,1,5,1,1,3,13}
Returns: "w0qq0000q0qq00qq00wwyjjyww00qq00qq0jjyee"
"RdvSeNGp"
{2,0,0,9,12,15,10,22,69,55}
{2,2,6,2,7,4,20,27,6,22}
Returns: "RddRvSSvRddddRSveNGGNevGNevSRddRSveNGveNGGNevSRddddRSveNGGNevGNevSRddRSveNGGNNGGNevSRddRSveNGveNGGNevSRvdp"
"Z"
{0,1,2,1,3,5}
{1,1,1,2,3,2}
Returns: "ZZZZZZZZZZZ"
"SBMZqaFOsh"
{7,1,8}
{2,3,3}
Returns: "SBMZZMBqaFOOFassOh"
"mR"
{1,0,3,3,8,10,5}
{1,3,1,4,2,1,4}
Returns: "mRRRRRmmRRmmRRRRRR"
"trLTXJ"
{3,8,6,5,6,3,10,19}
{3,1,1,3,5,7,9,15}
Returns: "trLTXJJJJJJJJJJXTJJJJTXJJJJJJJJJXTTXJJJJJJJJJXTJJT"
"4"
{0,0,3,3,6,2,1}
{1,2,1,2,1,1,8}
Returns: "44444444444444444"
"A0Ve8TqmTv"
{2,1,5,3,20,25,18,2,33,66}
{6,4,11,10,3,3,11,12,11,7}
Returns: "A0Ve88eV0TqmmmmmmqT0Ve88eVmqT0Ve88ee88qTTTTqqTTTTq88ee888ee88eVq888TqmmqTTqmmqT80Ve8eVTv"
"1bWbk0i"
{1}
{1}
Returns: "1bbWbk0i"
"dn"
{0,2}
{2,2}
Returns: "dnnddn"
"S"
{0,0,1,0,4,3,5,13,3}
{1,2,2,1,3,1,4,2,8}
Returns: "SSSSSSSSSSSSSSSSSSSSSSSSS"
"Misip"
{2, 3, 1, 7 }
{1, 1, 2, 2 }
Returns: "Mississippi"
"delicious"
{2, 3, 1, 7 }
{1, 1, 2, 2 }
Returns: "dellellicciious"
"TC206"
{1, 2, 5 }
{1, 1, 1 }
Returns: "TCCC2006"
"abcd"
{1 }
{1 }
Returns: "abbcd"
"AAAAAAAAAA"
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
{10, 20, 30, 40, 50, 60, 70, 80, 90, 100 }
Returns: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"ab"
{0 }
{2 }
Returns: "abba"
"Mssip"
{2 }
{3 }
Returns: "Mssippis"