Problem Statement
Did you konw taht slcrabmed wdros can be raed wtih vrey ltlite erfoft? Oh, sorry. Did you know that scrambled words can be read with very little effort? We can interpret most heavily mangled words because our brains "see" the similarity with the original words and catch the meaning of the text. It is claimed that as long as the first and last letters in every word remain unchanged, we can shuffle the rest of the letters within each word to obtain a reasonably readable text. We want to try the following strategy of scrambling letters in words:
- Leave the first and last letters in their original positions, and remove the rest of the letters. For example, "alphabet" becomes "a______t" (underscores represent empty positions).
- Sort the removed letters alphabetically. In this example, the removed letters are "lphabe", and they are sorted to become "abehlp".
- If any removed letters still exist, take the first one and move it to the leftmost empty position in the string. In this case, the string becomes "aa_____t", and the remaining removed letters are now "behlp".
- If any removed letters still exist, take the first one and move it to the rightmost empty position in the string. So, the string becomes "aa____bt", and the remaining removed letters are now "ehlp".
- Repeat steps 3 and 4 until no removed letters remain. In this example, the string becomes: "aae___bt" -> "aae__hbt" -> "aael_hbt" -> "aaelphbt".
You are given a
Definition
- Class:
- Scramble
- Method:
- scrambleWord
- Parameters:
- String
- Returns:
- String
- Method signature:
- String scrambleWord(String text)
- (be sure your method is public)
Constraints
- text will contain between 2 and 50 characters, inclusive.
- text will contain only lowercase letters ('a'-'z').
Examples
"alphabet"
Returns: "aaelphbt"
Example from the problem statement.
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
Returns: "aabcdefghijklmnopqrstuvwyzxwvutsrqponmlkjihgfedcbx"
"aa"
Returns: "aa"
"abdfheca"
Returns: "abdfheca"
"aaaaaaaaa"
Returns: "aaaaaaaaa"
"dcagkatxcazbjutmecrnjkajtu"
Returns: "daabcejjknttxzutrmkjgccaau"
"zejwoceciuvnvjyikgdcsfttwbszxrbmtghijymaespyyk"
Returns: "zabcdefgiijkmorsttvwxyyzyywvutsspnmjjihgeeccbk"
"wjqduejzhmkk"
Returns: "wdhjmuzqkjek"
"kyiijsghdihulmrcasrnzadurwooissesbbkpwstrzdaejckx"
Returns: "kaabcdeghiijkmoprrsssuwyzzwutsssrronlkjiiheddcbax"
"tckhvncggvpeucidtqcp"
Returns: "tccdghkptvvuqnigeccp"
"kenopkjqbhphqozwwzapmrxquppntpzcchnzv"
Returns: "kacehjmnopppqqtwxzzzzwurqppponnkhhcbv"
"orhtjonphbxj"
Returns: "obhnptxrojhj"
"bibxju"
Returns: "bbjxiu"
"xbfnjyqladbqvvjscjowtdrgryuizhvwbo"
Returns: "xabcdgijloqrtvvwyzywvusrqnjjhfdbbo"
"zqgfj"
Returns: "zfqgj"
"zatiqidkgcaxqejnsqpphappenpvqwkakwgbmghdplt"
Returns: "zaabdegghikkmnpppqqtwxwvsqqpppnlkjihgedcaat"
"wyfabmdkdvcjqdxkuunmkitlqyjb"
Returns: "wacdfjkkmnquvyyxutqmlkjiddbb"
"dzyewczdpdu"
Returns: "dcdpyzzwedu"
"uodoutivesbegckw"
Returns: "ubdeiosuvtokgecw"
"wmlefyhspccsdfleejxilzr"
Returns: "wcdefhjlmsxzyspllifeecr"
"ils"
Returns: "ils"
"jnntjxfdsxohpmqjvsunqsxiyhwjllgpbhvve"
Returns: "jbfhhjjlnnpqssuvwxyxxvvtsqponmljihgde"
"rmzpitgljkofoqfzllbiupbnkmhtxgseadhgwcsydcmqmehcck"
Returns: "rabccdefghhikllmmopqstuxzzywtsqponmmlkjihggfedccbk"
"vyekthddqwsyrcxvgdseiupikbsdxgj"
Returns: "vbddeghikqssuwxyyxvtsrpkigeddcj"
"ulnfmbzpjwafipqzxvgiiuvqbavysvwqapzojtlnfpabptrqgf"
Returns: "uaabbfgiijlnoppqqrtuvvwyzzzxwvvtsqqpppnmljigffbaaf"
"cvftujnhsbwmcw"
Returns: "cbfjntvwusmhcw"
"dwtsxsloxzlbnuq"
Returns: "dblosuxzxwtsnlq"
"yik"
Returns: "yik"
"iwhnayjlxdxndbflbkpoxjeprcipsq"
Returns: "iabdehjklnppsxxyxwrponljifdcbq"
"uuj"
Returns: "uuj"
"bexolznveihnwffjnsxhwickjyahtupphlqqdbygftne"
Returns: "baceffhhijklnnpqstvwxyzyxwutqponnljihhgfedbe"
"xmylvqwgydcpjehfuplpbqvakigojtgoquhbfl"
Returns: "xabdfgghjkloppqtuvyywvuqqpomljihgfecbl"
"rp"
Returns: "rp"
"fncowjiixzvsxulqonavkntmgzmay"
Returns: "facijlmnoqtvwxzzxvusonnmkigay"
"fgosuvwrywcvxpi"
Returns: "fcoruvwyxwvspgi"
"hjbivigbrhtwxgboggeheqbbvmhcjqontutvottqwheckqea"
Returns: "hbbbceegghhijmooqqtttvvwxwvuttrqqonkjihhggeecbba"
"kjbtpjjgcouxvpqnmvarfxcehpvwmmjaynefjsgfcpojzmqv"
Returns: "kabceffgjjjmmnoppqrtvvxyzxwvusqpponmmjjjhgfeccav"
"uarckrrfyopjzaysvwubjcnbtvmjpfjq"
Returns: "uabcfjjknprrtvwyzyvusrpomjjfcbaq"
"wcrnsnoigmtsoidahthrzrzajimaxxyvakfcwruyyhnio"
Returns: "waacdghiijmnnorrstvxyyzzyxwutsrronmkiihhfcaao"
"jbvedufgwxvdludsrmhocghq"
Returns: "jbddfghmruvwxvusolhgedcq"
"vwwjgetrfnemlffn"
Returns: "veffjmrwwtnlgfen"
"hdmuazv"
Returns: "hamzudv"
"eggissdvbxuuxlbnacsncpuaakr"
Returns: "eaabcgilnssuvxxuuspnkgdcbar"
"kwlhgossdlymbdyklosende"
Returns: "kbdehllnoswyyssomlkgdde"
"zaabz"
Returns: "zabaz"
"uodoutivesbegckwasdagasgagsdgdsagdsgasdg"
Returns: "uaaabdddeggggkossstvwussssoigggedddcaaag"
"abcdf"
Returns: "abdcf"
"abcdef"
Returns: "abdecf"
"practiahjkdhfkjdhkdjd"
Returns: "pacdfhijkktrkjjhhddad"
"uodoutivesbegckw"
Returns: "ubdeiosuvtokgecw"
"afedcbaa"
Returns: "aacefdba"
"alphabet"
Returns: "aaelphbt"
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
Returns: "aabcdefghijklmnopqrstuvwyzxwvutsrqponmlkjihgfedcbx"
"ba"
Returns: "ba"
"abc"
Returns: "abc"
"asdagrdytryuhrikm"
Returns: "aadhkrsuyytrrigdm"
"vishal"
Returns: "vaishl"
"gaurav"
Returns: "garuav"
"acbd"
Returns: "abcd"
"zaabzdgfdhfjdas"
Returns: "zaaddfhzjgfdbas"
"cassdada"
Returns: "cadssdaa"
"utyrvd"
Returns: "urvytd"
"aab"
Returns: "aab"
"trsvsd"
Returns: "trsvsd"
"farzi"
Returns: "fazri"
"abdgfjdvj"
Returns: "abdgvjfdj"
"jhaashish"
Returns: "jahisshah"
"ayush"
Returns: "asyuh"
"ayudh"
Returns: "adyuh"
"hggytrtyytf"
Returns: "hgrtyyyttgf"
"ramniwas"
Returns: "rainwmas"
"aabcdea"
Returns: "aacedba"