Statistics

Problem Statement for "LexStringWriter"

Problem Statement

You have a special machine called a LexStringWriter. It has a display that initially shows the String s, and the cursor's initial position is on the first letter of the string. The machine has three buttons: left, right, and enter. When you press left, the cursor moves one position to the left if possible. When you press right, it moves one position to the right if possible. The width of the display is exactly equal to the length of s, and the cursor can never leave the display. When you press enter, the letter shown at the current cursor position will be printed on paper, and that position on the display will be replaced with a space (' ').

Return the minimal number of button presses necessary to print all of the letters in s in alphabetically order. All occurrences of all letters in s must be printed, so if 'a' appears 3 times, for example, 'a' must be printed 3 times.

Definition

Class:
LexStringWriter
Method:
minMoves
Parameters:
String
Returns:
int
Method signature:
int minMoves(String s)
(be sure your method is public)

Constraints

  • s will contain between 1 and 50 characters, inclusive.
  • s will contain only lowercase letters ('a'-'z').

Examples

  1. "aaa"

    Returns: 5

    Press: enter, right, enter, right, enter.

  2. "ba"

    Returns: 4

    You should print the letter 'a' first.

  3. "abba"

    Returns: 9

  4. "acbbc"

    Returns: 12

    Print the rightmost letter 'c' before the leftmost.

  5. "a"

    Returns: 1

  6. "bb"

    Returns: 3

  7. "bba"

    Returns: 7

  8. "abbc"

    Returns: 7

  9. "abbcc"

    Returns: 9

  10. "cdaccb"

    Returns: 17

  11. "cdaccbc"

    Returns: 20

  12. "adecadbb"

    Returns: 26

  13. "adecadbbe"

    Returns: 33

  14. "aebffffddc"

    Returns: 32

  15. "aebffffddcf"

    Returns: 37

  16. "fceceacbgcbc"

    Returns: 48

  17. "fceceacbgcbca"

    Returns: 59

  18. "fgbefceaegccde"

    Returns: 61

  19. "fgbefceaegccdeh"

    Returns: 67

  20. "ghecicidgcficbif"

    Returns: 90

  21. "ghecicidgcficbife"

    Returns: 93

  22. "aijhfdbbjehhdcfeef"

    Returns: 88

  23. "aijhfdbbjehhdcfeefb"

    Returns: 99

  24. "agifgccgcacccfcbgfjk"

    Returns: 95

  25. "agifgccgcacccfcbgfjkk"

    Returns: 97

  26. "aebllfljdcfffkliedfiha"

    Returns: 145

  27. "aebllfljdcfffkliedfihai"

    Returns: 150

  28. "ffkiajhcdddkiceafgilbcji"

    Returns: 169

  29. "ffkiajhcdddkiceafgilbcjim"

    Returns: 175

  30. "mcljlhjbncbjhclakhnabkklcc"

    Returns: 172

  31. "mcljlhjbncbjhclakhnabkklccn"

    Returns: 181

  32. "anecfilgjoccihfoealfndocckdh"

    Returns: 255

  33. "anecfilgjoccihfoealfndocckdhm"

    Returns: 287

  34. "lndjkeibjmfegjppoapcefcfclaaia"

    Returns: 284

  35. "lndjkeibjmfegjppoapcefcfclaaiap"

    Returns: 297

  36. "bldcnqcdbajqlmiqdgdgnnbqdpdjcekm"

    Returns: 297

  37. "bldcnqcdbajqlmiqdgdgnnbqdpdjcekmk"

    Returns: 302

  38. "gqnlrlrdpcfrlkroepfcnacfikpqarllfl"

    Returns: 329

  39. "gqnlrlrdpcfrlkroepfcnacfikpqarllflo"

    Returns: 355

  40. "gfhlkoffgcsrphrhikssasdpkrdmcgkjerob"

    Returns: 387

  41. "gfhlkoffgcsrphrhikssasdpkrdmcgkjerobm"

    Returns: 392

  42. "aijhpnlbtorrncpeepbadiehmadcmdffrhccfn"

    Returns: 350

  43. "aijhpnlbtorrncpeepbadiehmadcmdffrhccfns"

    Returns: 377

  44. "mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokp"

    Returns: 412

  45. "mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokpo"

    Returns: 415

  46. "agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnil"

    Returns: 391

  47. "agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnilb"

    Returns: 400

  48. "ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklwe"

    Returns: 510

  49. "ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklweg"

    Returns: 557

  50. "aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwd"

    Returns: 575

  51. "aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwdk"

    Returns: 584

  52. "kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqyl"

    Returns: 618

  53. "kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqylm"

    Returns: 639

  54. "ssxvnjhpdqdxvcrastvybcwvmgnykrxvzxkgxtspsjdgyluegq"

    Returns: 642

  55. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 99

  56. "bbabbababbaaabbbbabaaaaaabaababbaabaaabbbbabbbbbba"

    Returns: 148

  57. "abbccccaaccccbccbaccbacccbabacccccccacbacbccbabbba"

    Returns: 189

  58. "cdaccbcacdbbbcdddadabbabacaacadcabcbbadddcbdcdccda"

    Returns: 243

  59. "adecadbbeeccdcaeeabaddeccadccdaaccccaddaaaaadbebcc"

    Returns: 280

  60. "aebffffddcfffefcedfcbacfcedeafffffccdfedcbfcedeeea"

    Returns: 325

  61. "fceceacbgcbcaceadagabddeccgfcgadcaeddadbafdagbfaga"

    Returns: 350

  62. "fgbefceaegccdehhhahbccbcbfaaeaheacfcdaghhfdgfhfega"

    Returns: 398

  63. "ghecicidgcficbifegfceacfibghaiccfcfcgcegchicbdbhbg"

    Returns: 440

  64. "aijhfdbbjehhdcfeefbadiehcadccdffhhccfdifaffaibegcc"

    Returns: 474

  65. "agifgccgcacccfcbgfjkkhhjkebgdebabkbfedcciabcfbgcif"

    Returns: 451

  66. "aebllfljdcfffkliedfihailiedkalffflccjfkdihlckdkeeg"

    Returns: 489

  67. "ffkiajhcdddkiceafgilbcjimgalkekimkkgkgfcfjdgllhegd"

    Returns: 516

  68. "mcljlhjbncbjhclakhnabkklccnmcnhdjhekdhkbafdagbmaga"

    Returns: 426

  69. "anecfilgjoccihfoealfndocckdhmiffccccainafkffngebhm"

    Returns: 576

  70. "lndjkeibjmfegjppoapcefcfclaaiapjbekegampplhnlpljna"

    Returns: 603

  71. "bldcnqcdbajqlmiqdgdgnnbqdpdjcekmkfedplbjmiepfehehg"

    Returns: 519

  72. "gqnlrlrdpcfrlkroepfcnacfikpqarllflocplepchrckdkqkg"

    Returns: 580

  73. "gfhlkoffgcsrphrhikssasdpkrdmcgkjerobmmhmmoifleacgs"

    Returns: 609

  74. "aijhpnlbtorrncpeepbadiehmadcmdffrhccfnspappksloqmc"

    Returns: 688

  75. "mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokpotronpthna"

    Returns: 636

  76. "agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnilbcqbgciq"

    Returns: 459

  77. "ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklwegqkjtt"

    Returns: 676

  78. "aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwdkqqg"

    Returns: 651

  79. "kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqylmm"

    Returns: 642

  80. "ssxvnjhpdqdxvcrastvybcwvmgnykrxvzxkgxtspsjdgyluegq"

    Returns: 642

  81. "azzbcdzzzzzzzzzzzzzzzzzzzazzzbdzzzzzzzzzzzzzzzzzza"

    Returns: 237

  82. "sdfhfdhuifwheifhsidhfkjshdfkjhsdfuiwhifuhdkvnbn"

    Returns: 429

  83. "cbab"

    Returns: 10

  84. "aabbbbabbzbzzzzeoirutotriyuoriuytbazbabzabzzzzaaab"

    Returns: 285

  85. "dcabcd"

    Returns: 19

  86. "dabdcdee"

    Returns: 23

  87. "abcasdadasdadasdasd"

    Returns: 81

  88. "abdghihihihihiijkjkjihihbegfegdegddhehdebgbcabacah"

    Returns: 428

  89. "acbbcd"

    Returns: 15

  90. "abbcadadb"

    Returns: 30

  91. "dfafasfasfsadfdsfsdafdsahdsgfd"

    Returns: 143

  92. "bbabc"

    Returns: 13

  93. "ffffffggggaaakkkgggaaaggggfff"

    Returns: 122

  94. "acbabbbb"

    Returns: 21

  95. "acbbc"

    Returns: 12

  96. "bdabccc"

    Returns: 22

  97. "pzzapaxxdsaspdfsdzzadpasdddazzpaazpzdd"

    Returns: 225

  98. "zxyzxyzxyfedcba"

    Returns: 57

  99. "abcdzefghmijklamnopqrstouvwxyz"

    Returns: 128

  100. "dhhhffjemffhcfmkledcfhlevlgmefgt"

    Returns: 248

  101. "adcbcef"

    Returns: 19

  102. "accb"

    Returns: 9

  103. "acbadb"

    Returns: 18

  104. "bcdebahb"

    Returns: 28

  105. "zxcvbnmasadfghjklpoiuytrewqwertyyuuioighcbvxzsfgfg"

    Returns: 698

  106. "ababc"

    Returns: 11

  107. "asdffdsedfsxcsdsaasdfxz"

    Returns: 135

  108. "baabc"

    Returns: 13

  109. "uabcdefabcdefeasddaqedzasqszadueqezcgsadsfudasdfu"

    Returns: 465

  110. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    Returns: 99


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: