Problem Statement
Goose Tattarrattat has a
She will do this in a series of steps. In each step, Tattarrattat will choose two letters of the alphabet: X and Y. She will then change each X in her string into an Y. Changing each single character takes 1 second.
For example, if S="goose" and Tattarrattat chooses X='o' and Y='e' in the next step, the step will take 2 seconds (because there are two 'o's in S) and after the step she would have S="geese".
You are given the
Definition
- Class:
- GooseTattarrattatDiv2
- Method:
- getmin
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getmin(String S)
- (be sure your method is public)
Constraints
- S will contain between 1 and 50 characters, inclusive.
- Each character in S will be a lowercase letter ('a'-'z').
Examples
"geese"
Returns: 2
There are many ways how Tattarrattat can change this S into a smooth string. For example, she could do it in two steps as follows: Change all 'g's to 'e's: this takes 1 second and produces the string "eeese". Change all 'e's to 's's: this takes 4 seconds and produces the string "sssss". This way took her 1+4 = 5 seconds. However, there are faster ways. The best one only takes 2 seconds. For example, she can first change all 'g's to 'e's (1 second), and then change all 's's to 'e's (1 second), obtaining the smooth string "eeeee".
"tattarrattat"
Returns: 6
"www"
Returns: 0
This string is already smooth so no changes are needed.
"topcoder"
Returns: 6
"abcdefghijklmnopqrstuvwxyz"
Returns: 25
"e"
Returns: 0
"ve"
Returns: 1
"nxj"
Returns: 2
"onwg"
Returns: 3
"jdwwl"
Returns: 3
"smsozy"
Returns: 4
"bjgymyq"
Returns: 5
"actznkbr"
Returns: 7
"ccqovzihl"
Returns: 7
"glecqmnffv"
Returns: 8
"kopnxmgtoec"
Returns: 9
"fcbfphevqxzo"
Returns: 10
"ikvzriypjijjl"
Returns: 10
"ufgqmebfdhtjsp"
Returns: 12
"bzhlhizfzdvxlmw"
Returns: 12
"tpqmmgezyfbplfpi"
Returns: 13
"kgjykqrenxmgvwfge"
Returns: 14
"clqnblvnxhbiprzcrd"
Returns: 16
"mgscdkdqviibwzqncon"
Returns: 17
"gwyfavhghvflggjsnzoz"
Returns: 16
"trairhswhnrrbinzulyst"
Returns: 17
"zekgxycoeiarkvytuazofh"
Returns: 20
"iyaijhiunfasnlbdtqepgbs"
Returns: 20
"nabrsskjymoigfycqgwceswf"
Returns: 21
"bethgemtepnknzovzvfyrpesq"
Returns: 21
"mmtuyooeiwrvepyntnhruwumou"
Returns: 22
"mdwfonfrarzwvhcsookkrmylbts"
Returns: 24
"lbwbihuvzeislszjtigzmjvwdwkw"
Returns: 24
"zxgawyhsqelcattbaokunmgknlsta"
Returns: 25
"vnsmrirkhqrkjgqjmiswsdjzqywbpd"
Returns: 27
"oxfqqlfdtwbxmxnmqboqjonxmowvzvx"
Returns: 26
"jibmizhufhpcdwzogczhhzwgptrzljud"
Returns: 27
"gqujiykoeqdypqctuhhwtmobtxkrmgtwe"
Returns: 29
"iiywojzdymowmfmvwkpdcvdrcmbgowrueu"
Returns: 30
"ejhonyduovxvwnisznznmedjzzrqgaqqbiu"
Returns: 31
"kecawgtxfuwmbgelpdjwrewqnxkztbbhyjnp"
Returns: 32
"xebehwtklyprdqsroqxcvmpmnqkeblarooshd"
Returns: 34
"tlhkxiihsildsolrifgtpnyyfbcyhgytsgibdx"
Returns: 33
"gyamaduuvevmzgclbufazgkoiutlzsdsgocxlyk"
Returns: 35
"vfwgbyozohyxupjjsmufcbsbtgrklmtknwjfsrtu"
Returns: 37
"fjmkxxtapezfdzduwxseomnfiuobhljfpquyuvblk"
Returns: 37
"sdwyzxeewvxytrgdhnpygjzgpgfsyorciqjnoromdu"
Returns: 38
"oqcwaiywhovohaqjjatylvndjvxplyuawoyekcmkrjw"
Returns: 39
"xbevabhcyfwtybuaxfqluvnrnprzohfnhsacyzyxftdr"
Returns: 40
"zxgqxaznqojjlwxafkgxzuzlcgrlhxhxrnfxhiigyzvgt"
Returns: 38
"brzvjmxsarukftzpbynsdbzcimvijwvzfbahlpmlzasves"
Returns: 41
"efgteztyxlxdfmufenlhoqvfklnzrcktiqkipfgtrfuirsi"
Returns: 41
"vdnwkrhxzuztlcnsmzpoltjpsztqmqhwfjoohlczsbeaqwmq"
Returns: 43
"ffllmxowxvwvtdjtdaeclrunyodthzxphfptccmgsspzhseoa"
Returns: 45
"esvinzhzrodrhkzfuorlwtxwbxwefuhklyhvzyiqaycfuuqhja"
Returns: 45
"pfdpzvhamtrmwxlxpxgwuiqcspmqzsedcsummwivduanvmnqjl"
Returns: 44
"ueubyfvnialatabyxptbhvabtpwtvkbatxdottpmtjgcwcjkex"
Returns: 42
"envfbrqbvvcynhhnvvfkkavvgcevakuzevqkudogmebcybkvjv"
Returns: 39
"szivqlcbqvhbvdraqrindmbnrnumzitmzavqvchvylguzeado"
Returns: 43
"qgofmmuosoksikxrnhghqbkjkospcxghgjuciknvpjoryzwigq"
Returns: 45
"auinlrymrchsntpqcppfwrsnwuwpvgrxodrynillrmkpcusua"
Returns: 43
"imdfoyudyhkckrvduillnuoeiyeounlliudbqlmkhyruifzscy"
Returns: 44
"xrepayuyubctwtykrauccnquqfuqvccuaakylwlcjuyhyammag"
Returns: 43
"ozppevgxnmiedpmcvayhiwwlevhwbwgascepdmbmnqrlmpjko"
Returns: 44
"pxcjmksjarnxnmwdkomndkukmmkwkxnmokeumnenqdjskmwfxp"
Returns: 42
"tmjgnvgeyhgkiwmeextjgkafdyakgptxeejzilgoyegvwgpjt"
Returns: 41
"xpegbfbspqpztvbfmkrsrpkbppbkpqwrkmfbjuzpqpsbfbgcps"
Returns: 40
"rgrodfsgcqbeysgcxeetcwunggnuwzneexcgslebuzgsfiorgr"
Returns: 42
"zcvaavomgutkxegjnvidkvvrcrvvjdxvnkgexktugmovaavrb"
Returns: 39
"eclkjqypfgtfindsftmhdlkwumkldhwtfocnqftgfjyqjkldb"
Returns: 43
"hdynujaalhqtecaemwmsslsdccdslssmwmdacdtlhqvajunaeh"
Returns: 44
"sepggadcsdpfsmdpwhbodscfeexcsdabhwpdusxpdsldatgpes"
Returns: 42
"prwpmyprfutdqtnhqbmadwasaasawdambqhntqxtmfrpympwrp"
Returns: 44
"legzuvvdyjsjkzqksnpndsbapabsdnpnsxqzkjsjydvvuzgel"
Returns: 43
"xjkmtjwvrpkutmpcutkzaphsjjohpaaktucpmtrkpuvwjtmkjx"
Returns: 44
"ab"
Returns: 1
"aaza"
Returns: 1
"zzzzzaa"
Returns: 2
"a"
Returns: 0
"xyz"
Returns: 2
"yz"
Returns: 1
"zzaaaa"
Returns: 2
"aaabbb"
Returns: 3
"aaabbbccc"
Returns: 6
"abzzzz"
Returns: 2