Statistics

Problem Statement for "Scramble"

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:

  1. 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).
  2. Sort the removed letters alphabetically. In this example, the removed letters are "lphabe", and they are sorted to become "abehlp".
  3. 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".
  4. 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".
  5. 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 String text containing a lowercase word. Return the scrambled word following the described procedure.

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

  1. "alphabet"

    Returns: "aaelphbt"

    Example from the problem statement.

  2. "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"

    Returns: "aabcdefghijklmnopqrstuvwyzxwvutsrqponmlkjihgfedcbx"

  3. "aa"

    Returns: "aa"

  4. "abdfheca"

    Returns: "abdfheca"

  5. "aaaaaaaaa"

    Returns: "aaaaaaaaa"

  6. "dcagkatxcazbjutmecrnjkajtu"

    Returns: "daabcejjknttxzutrmkjgccaau"

  7. "zejwoceciuvnvjyikgdcsfttwbszxrbmtghijymaespyyk"

    Returns: "zabcdefgiijkmorsttvwxyyzyywvutsspnmjjihgeeccbk"

  8. "wjqduejzhmkk"

    Returns: "wdhjmuzqkjek"

  9. "kyiijsghdihulmrcasrnzadurwooissesbbkpwstrzdaejckx"

    Returns: "kaabcdeghiijkmoprrsssuwyzzwutsssrronlkjiiheddcbax"

  10. "tckhvncggvpeucidtqcp"

    Returns: "tccdghkptvvuqnigeccp"

  11. "kenopkjqbhphqozwwzapmrxquppntpzcchnzv"

    Returns: "kacehjmnopppqqtwxzzzzwurqppponnkhhcbv"

  12. "orhtjonphbxj"

    Returns: "obhnptxrojhj"

  13. "bibxju"

    Returns: "bbjxiu"

  14. "xbfnjyqladbqvvjscjowtdrgryuizhvwbo"

    Returns: "xabcdgijloqrtvvwyzywvusrqnjjhfdbbo"

  15. "zqgfj"

    Returns: "zfqgj"

  16. "zatiqidkgcaxqejnsqpphappenpvqwkakwgbmghdplt"

    Returns: "zaabdegghikkmnpppqqtwxwvsqqpppnlkjihgedcaat"

  17. "wyfabmdkdvcjqdxkuunmkitlqyjb"

    Returns: "wacdfjkkmnquvyyxutqmlkjiddbb"

  18. "dzyewczdpdu"

    Returns: "dcdpyzzwedu"

  19. "uodoutivesbegckw"

    Returns: "ubdeiosuvtokgecw"

  20. "wmlefyhspccsdfleejxilzr"

    Returns: "wcdefhjlmsxzyspllifeecr"

  21. "ils"

    Returns: "ils"

  22. "jnntjxfdsxohpmqjvsunqsxiyhwjllgpbhvve"

    Returns: "jbfhhjjlnnpqssuvwxyxxvvtsqponmljihgde"

  23. "rmzpitgljkofoqfzllbiupbnkmhtxgseadhgwcsydcmqmehcck"

    Returns: "rabccdefghhikllmmopqstuxzzywtsqponmmlkjihggfedccbk"

  24. "vyekthddqwsyrcxvgdseiupikbsdxgj"

    Returns: "vbddeghikqssuwxyyxvtsrpkigeddcj"

  25. "ulnfmbzpjwafipqzxvgiiuvqbavysvwqapzojtlnfpabptrqgf"

    Returns: "uaabbfgiijlnoppqqrtuvvwyzzzxwvvtsqqpppnmljigffbaaf"

  26. "cvftujnhsbwmcw"

    Returns: "cbfjntvwusmhcw"

  27. "dwtsxsloxzlbnuq"

    Returns: "dblosuxzxwtsnlq"

  28. "yik"

    Returns: "yik"

  29. "iwhnayjlxdxndbflbkpoxjeprcipsq"

    Returns: "iabdehjklnppsxxyxwrponljifdcbq"

  30. "uuj"

    Returns: "uuj"

  31. "bexolznveihnwffjnsxhwickjyahtupphlqqdbygftne"

    Returns: "baceffhhijklnnpqstvwxyzyxwutqponnljihhgfedbe"

  32. "xmylvqwgydcpjehfuplpbqvakigojtgoquhbfl"

    Returns: "xabdfgghjkloppqtuvyywvuqqpomljihgfecbl"

  33. "rp"

    Returns: "rp"

  34. "fncowjiixzvsxulqonavkntmgzmay"

    Returns: "facijlmnoqtvwxzzxvusonnmkigay"

  35. "fgosuvwrywcvxpi"

    Returns: "fcoruvwyxwvspgi"

  36. "hjbivigbrhtwxgboggeheqbbvmhcjqontutvottqwheckqea"

    Returns: "hbbbceegghhijmooqqtttvvwxwvuttrqqonkjihhggeecbba"

  37. "kjbtpjjgcouxvpqnmvarfxcehpvwmmjaynefjsgfcpojzmqv"

    Returns: "kabceffgjjjmmnoppqrtvvxyzxwvusqpponmmjjjhgfeccav"

  38. "uarckrrfyopjzaysvwubjcnbtvmjpfjq"

    Returns: "uabcfjjknprrtvwyzyvusrpomjjfcbaq"

  39. "wcrnsnoigmtsoidahthrzrzajimaxxyvakfcwruyyhnio"

    Returns: "waacdghiijmnnorrstvxyyzzyxwutsrronmkiihhfcaao"

  40. "jbvedufgwxvdludsrmhocghq"

    Returns: "jbddfghmruvwxvusolhgedcq"

  41. "vwwjgetrfnemlffn"

    Returns: "veffjmrwwtnlgfen"

  42. "hdmuazv"

    Returns: "hamzudv"

  43. "eggissdvbxuuxlbnacsncpuaakr"

    Returns: "eaabcgilnssuvxxuuspnkgdcbar"

  44. "kwlhgossdlymbdyklosende"

    Returns: "kbdehllnoswyyssomlkgdde"

  45. "zaabz"

    Returns: "zabaz"

  46. "uodoutivesbegckwasdagasgagsdgdsagdsgasdg"

    Returns: "uaaabdddeggggkossstvwussssoigggedddcaaag"

  47. "abcdf"

    Returns: "abdcf"

  48. "abcdef"

    Returns: "abdecf"

  49. "practiahjkdhfkjdhkdjd"

    Returns: "pacdfhijkktrkjjhhddad"

  50. "uodoutivesbegckw"

    Returns: "ubdeiosuvtokgecw"

  51. "afedcbaa"

    Returns: "aacefdba"

  52. "alphabet"

    Returns: "aaelphbt"

  53. "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"

    Returns: "aabcdefghijklmnopqrstuvwyzxwvutsrqponmlkjihgfedcbx"

  54. "ba"

    Returns: "ba"

  55. "abc"

    Returns: "abc"

  56. "asdagrdytryuhrikm"

    Returns: "aadhkrsuyytrrigdm"

  57. "vishal"

    Returns: "vaishl"

  58. "gaurav"

    Returns: "garuav"

  59. "acbd"

    Returns: "abcd"

  60. "zaabzdgfdhfjdas"

    Returns: "zaaddfhzjgfdbas"

  61. "cassdada"

    Returns: "cadssdaa"

  62. "utyrvd"

    Returns: "urvytd"

  63. "aab"

    Returns: "aab"

  64. "trsvsd"

    Returns: "trsvsd"

  65. "farzi"

    Returns: "fazri"

  66. "abdgfjdvj"

    Returns: "abdgvjfdj"

  67. "jhaashish"

    Returns: "jahisshah"

  68. "ayush"

    Returns: "asyuh"

  69. "ayudh"

    Returns: "adyuh"

  70. "hggytrtyytf"

    Returns: "hgrtyyyttgf"

  71. "ramniwas"

    Returns: "rainwmas"

  72. "aabcdea"

    Returns: "aacedba"


This problem statement is the exclusive and proprietary property of TopCoder, Inc. Any unauthorized use or reproduction of this information without the prior written consent of TopCoder, Inc. is strictly prohibited. (c)2024, TopCoder, Inc. All rights reserved.
This problem was used for: