Problem Statement
A palindrome is a
Definition
- Class:
- ShortPalindromes
- Method:
- shortest
- Parameters:
- String
- Returns:
- String
- Method signature:
- String shortest(String base)
- (be sure your method is public)
Constraints
- base contains between 1 and 25 characters, inclusive.
- Every character in base is an uppercase letter ('A'-'Z').
Examples
"RACE"
Returns: "ECARACE"
To make "RACE" into a palindrome, we must add at least three letters. However, there are eight ways to do this by adding exactly three letters: "ECARACE" "ECRARCE" "ERACARE" "ERCACRE" "RACECAR" "RAECEAR" "REACAER" "RECACER" Of these alternatives, "ECARACE" is the lexicographically earliest.
"TOPCODER"
Returns: "REDTOCPCOTDER"
"Q"
Returns: "Q"
"MADAMIMADAM"
Returns: "MADAMIMADAM"
"ALRCAGOEUAOEURGCOEUOOIGFA"
Returns: "AFLRCAGIOEOUAEOCEGRURGECOEAUOEOIGACRLFA"
"ABCDEFG"
Returns: "ABCDEFGFEDCBA"
"GFEDCBA"
Returns: "ABCDEFGFEDCBA"
"AAAAA"
Returns: "AAAAA"
"AAAAAB"
Returns: "BAAAAAB"
"ABBBBB"
Returns: "ABBBBBA"
"GECABDF"
Returns: "FDBACEGECABDF"
"ACEGFDB"
Returns: "ABCDEFGFEDCBA"
"ABCDAA"
Returns: "AABCDCBAA"
"CA"
Returns: "ACA"
"EDD"
Returns: "EDDE"
"BEDA"
Returns: "ABDEDBA"
"BEABB"
Returns: "BBAEABB"
"DEABCB"
Returns: "DEABCBAED"
"AECEABA"
Returns: "ABAECEABA"
"EEDBDEDA"
Returns: "ADEEDBDEEDA"
"ACBAAADCC"
Returns: "ACBCDAAADCBCA"
"ACCCCCCBDA"
Returns: "ADBCCCCCCBDA"
"ACDBABDCCDB"
Returns: "ABDCCDBABDCCDBA"
"BDDAABCAEAAB"
Returns: "BADDAEABCBAEADDAB"
"BBCADBCEBBECD"
Returns: "BBCADBCEBBECBDACBB"
"BCCAADEBCEEBAA"
Returns: "BCCAADEBCEECBEDAACCB"
"EDCCCECEBACDEBD"
Returns: "DBEDCABCCECECCBACDEBD"
"CECCDBBBBDBDBCBB"
Returns: "BBCBECCDBDBBBDBDCCEBCBB"
"BBEDBAEEDEACEDDAC"
Returns: "BBCADDECDBAEDEDEABDCEDDACBB"
"AEABEDBDBBADEECEDC"
Returns: "ACDEABCEEDABBDBBADEECBAEDCA"
"AABEDDEBBDBCECDCADD"
Returns: "AABDEDACDCEBCBDBCBECDCADEDBAA"
"ACCADCCDCDDBBEDACBCB"
Returns: "ABCBCADCCEBBDCDCDBBECCDACBCBA"
"BEAEDAADADDDDBDDCCABD"
Returns: "DBEACCEDAADABDDDDBADAADECCAEBD"
"AEEECABCBEAEBBCCACDAEC"
Returns: "ACEADEECABCCBBEAEBBCCBACEEDAECA"
"AEADACEBABCCBDBAEDCCCBC"
Returns: "ACBCCCDEABDABCCEBABECCBADBAEDCCCBCA"
"AADEDEBECDCDEBCCECCEACCC"
Returns: "ACCCADECCDECCBECDCDCEBCCEDCCEDACCCA"
"CBDDECBEDCEBEEEAEBCCAEEAE"
Returns: "CBDDEACBEDCEACCBEAEEAEBCCAECDEBCAEDDBC"
"HMDCDJKWHWMEDBKWJEKRFHLO"
Returns: "OLHFMDCDRKEJWKBDEMWHWMEDBKWJEKRDCDMFHLO"
"MWRQIGJTGNKPBHKXQGIIECSF"
Returns: "FMSCEIWRQIGJQTGNXKHBPBHKXNGTQJGIQRWIECSMF"
"PXVXFOVOXFXUNVKQSVBLTGNL"
Returns: "LNGPTLBVSQKXVNUXFXOVOXFXUNVXKQSVBLTPGNL"
"QTQDDSEJHKMAVPVVRSITDMMM"
Returns: "MMMDQTIQDDSEJHKMARVPVPVRAMKHJESDDQITQDMMM"
"UZOUZENQJTNWLRNBTABSNHHZA"
Returns: "AUZHHOUZENQJSBATBNRLWLRNBTABSJQNEZUOHHZUA"
"EOFYITMBCPSKYNAIBHGVIGFBT"
Returns: "EOFYITMBCFGPSKYNAIBHGVGHBIANYKSPGFCBMTIYFOE"
"LVJYMTWWFPUAJGFAENQAITSUW"
Returns: "LVJYMTWWFPUAJGFSTIAENQNEAITSFGJAUPFWWTMYJVL"
"ZNRDGCMXQCSHEIRSONFBOZDFQ"
Returns: "QFDZOBFNOSRDGIEHSCMQXQMCSHEIGDRSONFBOZDFQ"
"ALRCAGOEUAOERGCOEUOOIGFA"
Returns: "AFLRCAGIOEOUAEOCEGRGECOEAUOEOIGACRLFA"
"ALRCAGOEUAOEURGCOEUOOIGFA"
Returns: "AFLRCAGIOEOUAEOCEGRURGECOEAUOEOIGACRLFA"
"ALRCAGOEUAOEXXGCOEUOOIGFA"
Returns: "AFLRCAGIOEOUAEOCEGXXGECOEAUOEOIGACRLFA"
"ALRCAGOEUAOEXXXCOEUOOIGFA"
Returns: "AFLRCAGIOEOUAEOCEXXXECOEAUOEOIGACRLFA"
"ABACADAFAGAFAHAJAKABA"
Returns: "ABACKADJAHAFAGAFAHAJDAKCABA"
"ABACADAEAFAGAHAIAJAKAL"
Returns: "ABLACKADJAEIAFHAGAHFAIEAJDAKCALBA"
"SDGBIULGIBNEROJOPGERG"
Returns: "GRESDGPOJORENBIGLULGIBNEROJOPGDSERG"
"TOPCODER"
Returns: "REDTOCPCOTDER"
"GOOGLE"
Returns: "ELGOOGLE"