Problem Statement
You have a special machine called a LexStringWriter. It has a display that initially shows the
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
"aaa"
Returns: 5
Press: enter, right, enter, right, enter.
"ba"
Returns: 4
You should print the letter 'a' first.
"abba"
Returns: 9
"acbbc"
Returns: 12
Print the rightmost letter 'c' before the leftmost.
"a"
Returns: 1
"bb"
Returns: 3
"bba"
Returns: 7
"abbc"
Returns: 7
"abbcc"
Returns: 9
"cdaccb"
Returns: 17
"cdaccbc"
Returns: 20
"adecadbb"
Returns: 26
"adecadbbe"
Returns: 33
"aebffffddc"
Returns: 32
"aebffffddcf"
Returns: 37
"fceceacbgcbc"
Returns: 48
"fceceacbgcbca"
Returns: 59
"fgbefceaegccde"
Returns: 61
"fgbefceaegccdeh"
Returns: 67
"ghecicidgcficbif"
Returns: 90
"ghecicidgcficbife"
Returns: 93
"aijhfdbbjehhdcfeef"
Returns: 88
"aijhfdbbjehhdcfeefb"
Returns: 99
"agifgccgcacccfcbgfjk"
Returns: 95
"agifgccgcacccfcbgfjkk"
Returns: 97
"aebllfljdcfffkliedfiha"
Returns: 145
"aebllfljdcfffkliedfihai"
Returns: 150
"ffkiajhcdddkiceafgilbcji"
Returns: 169
"ffkiajhcdddkiceafgilbcjim"
Returns: 175
"mcljlhjbncbjhclakhnabkklcc"
Returns: 172
"mcljlhjbncbjhclakhnabkklccn"
Returns: 181
"anecfilgjoccihfoealfndocckdh"
Returns: 255
"anecfilgjoccihfoealfndocckdhm"
Returns: 287
"lndjkeibjmfegjppoapcefcfclaaia"
Returns: 284
"lndjkeibjmfegjppoapcefcfclaaiap"
Returns: 297
"bldcnqcdbajqlmiqdgdgnnbqdpdjcekm"
Returns: 297
"bldcnqcdbajqlmiqdgdgnnbqdpdjcekmk"
Returns: 302
"gqnlrlrdpcfrlkroepfcnacfikpqarllfl"
Returns: 329
"gqnlrlrdpcfrlkroepfcnacfikpqarllflo"
Returns: 355
"gfhlkoffgcsrphrhikssasdpkrdmcgkjerob"
Returns: 387
"gfhlkoffgcsrphrhikssasdpkrdmcgkjerobm"
Returns: 392
"aijhpnlbtorrncpeepbadiehmadcmdffrhccfn"
Returns: 350
"aijhpnlbtorrncpeepbadiehmadcmdffrhccfns"
Returns: 377
"mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokp"
Returns: 412
"mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokpo"
Returns: 415
"agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnil"
Returns: 391
"agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnilb"
Returns: 400
"ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklwe"
Returns: 510
"ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklweg"
Returns: 557
"aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwd"
Returns: 575
"aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwdk"
Returns: 584
"kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqyl"
Returns: 618
"kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqylm"
Returns: 639
"ssxvnjhpdqdxvcrastvybcwvmgnykrxvzxkgxtspsjdgyluegq"
Returns: 642
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: 99
"bbabbababbaaabbbbabaaaaaabaababbaabaaabbbbabbbbbba"
Returns: 148
"abbccccaaccccbccbaccbacccbabacccccccacbacbccbabbba"
Returns: 189
"cdaccbcacdbbbcdddadabbabacaacadcabcbbadddcbdcdccda"
Returns: 243
"adecadbbeeccdcaeeabaddeccadccdaaccccaddaaaaadbebcc"
Returns: 280
"aebffffddcfffefcedfcbacfcedeafffffccdfedcbfcedeeea"
Returns: 325
"fceceacbgcbcaceadagabddeccgfcgadcaeddadbafdagbfaga"
Returns: 350
"fgbefceaegccdehhhahbccbcbfaaeaheacfcdaghhfdgfhfega"
Returns: 398
"ghecicidgcficbifegfceacfibghaiccfcfcgcegchicbdbhbg"
Returns: 440
"aijhfdbbjehhdcfeefbadiehcadccdffhhccfdifaffaibegcc"
Returns: 474
"agifgccgcacccfcbgfjkkhhjkebgdebabkbfedcciabcfbgcif"
Returns: 451
"aebllfljdcfffkliedfihailiedkalffflccjfkdihlckdkeeg"
Returns: 489
"ffkiajhcdddkiceafgilbcjimgalkekimkkgkgfcfjdgllhegd"
Returns: 516
"mcljlhjbncbjhclakhnabkklccnmcnhdjhekdhkbafdagbmaga"
Returns: 426
"anecfilgjoccihfoealfndocckdhmiffccccainafkffngebhm"
Returns: 576
"lndjkeibjmfegjppoapcefcfclaaiapjbekegampplhnlpljna"
Returns: 603
"bldcnqcdbajqlmiqdgdgnnbqdpdjcekmkfedplbjmiepfehehg"
Returns: 519
"gqnlrlrdpcfrlkroepfcnacfikpqarllflocplepchrckdkqkg"
Returns: 580
"gfhlkoffgcsrphrhikssasdpkrdmcgkjerobmmhmmoifleacgs"
Returns: 609
"aijhpnlbtorrncpeepbadiehmadcmdffrhccfnspappksloqmc"
Returns: 688
"mqeclocpgcicoqlokauobdrlcqgtjuorcolrdokpotronpthna"
Returns: 636
"agtfrnnrnannnqnmgfjkvssjkebgopblbvmqpdcnilbcqbgciq"
Returns: 459
"ijwnkwmffprrreuimahbpjhwidmdubjemdcqpbobklwegqkjtt"
Returns: 676
"aenxlfljpoffrwxuedrihauluepkmxrfflcovfkdihlcwdkqqg"
Returns: 651
"kxewpdqlteccxmutjaqusnywckdhrxuummcmadnkkaffxqylmm"
Returns: 642
"ssxvnjhpdqdxvcrastvybcwvmgnykrxvzxkgxtspsjdgyluegq"
Returns: 642
"azzbcdzzzzzzzzzzzzzzzzzzzazzzbdzzzzzzzzzzzzzzzzzza"
Returns: 237
"sdfhfdhuifwheifhsidhfkjshdfkjhsdfuiwhifuhdkvnbn"
Returns: 429
"cbab"
Returns: 10
"aabbbbabbzbzzzzeoirutotriyuoriuytbazbabzabzzzzaaab"
Returns: 285
"dcabcd"
Returns: 19
"dabdcdee"
Returns: 23
"abcasdadasdadasdasd"
Returns: 81
"abdghihihihihiijkjkjihihbegfegdegddhehdebgbcabacah"
Returns: 428
"acbbcd"
Returns: 15
"abbcadadb"
Returns: 30
"dfafasfasfsadfdsfsdafdsahdsgfd"
Returns: 143
"bbabc"
Returns: 13
"ffffffggggaaakkkgggaaaggggfff"
Returns: 122
"acbabbbb"
Returns: 21
"acbbc"
Returns: 12
"bdabccc"
Returns: 22
"pzzapaxxdsaspdfsdzzadpasdddazzpaazpzdd"
Returns: 225
"zxyzxyzxyfedcba"
Returns: 57
"abcdzefghmijklamnopqrstouvwxyz"
Returns: 128
"dhhhffjemffhcfmkledcfhlevlgmefgt"
Returns: 248
"adcbcef"
Returns: 19
"accb"
Returns: 9
"acbadb"
Returns: 18
"bcdebahb"
Returns: 28
"zxcvbnmasadfghjklpoiuytrewqwertyyuuioighcbvxzsfgfg"
Returns: 698
"ababc"
Returns: 11
"asdffdsedfsxcsdsaasdfxz"
Returns: 135
"baabc"
Returns: 13
"uabcdefabcdefeasddaqedzasqszadueqezcgsadsfudasdfu"
Returns: 465
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: 99