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 a 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:
- GooseTattarrattatDiv1
- Method:
- getmin
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getmin(String S)
- (be sure your method is public)
Notes
- Tattarrattat must always change all occurrences of the chosen letter into the other one; she is not allowed to change only some of the occurrences.
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 palindrome. 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 palindrome "eeeee".
"tattarrattat"
Returns: 0
This string is already a palindrome so no changes are needed.
"xyyzzzxxx"
Returns: 2
"dogeeseseegod"
Returns: 0
"palindrome"
Returns: 5
"abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcb"
Returns: 48
"aaabbbcxyyopqrorrqoxyxcbaaddd"
Returns: 13
"e"
Returns: 0
"ve"
Returns: 1
"nxj"
Returns: 1
"onwg"
Returns: 2
"jdwwl"
Returns: 2
"smsozy"
Returns: 3
"bjgymyq"
Returns: 3
"actznkbr"
Returns: 4
"ccqovzihl"
Returns: 4
"glecqmnffv"
Returns: 5
"kopnxmgtoec"
Returns: 5
"fcbfphevqxzo"
Returns: 6
"ikvzriypjijjl"
Returns: 6
"ufgqmebfdhtjsp"
Returns: 7
"bzhlhizfzdvxlmw"
Returns: 7
"tpqmmgezyfbplfpi"
Returns: 8
"kgjykqrenxmgvwfge"
Returns: 8
"clqnblvnxhbiprzcrd"
Returns: 12
"mgscdkdqviibwzqncon"
Returns: 11
"gwyfavhghvflggjsnzoz"
Returns: 12
"trairhswhnrrbinzulyst"
Returns: 10
"zekgxycoeiarkvytuazofh"
Returns: 13
"iyaijhiunfasnlbdtqepgbs"
Returns: 14
"nabrsskjymoigfycqgwceswf"
Returns: 15
"bethgemtepnknzovzvfyrpesq"
Returns: 16
"mmtuyooeiwrvepyntnhruwumou"
Returns: 20
"mdwfonfrarzwvhcsookkrmylbts"
Returns: 19
"lbwbihuvzeislszjtigzmjvwdwkw"
Returns: 16
"zxgawyhsqelcattbaokunmgknlsta"
Returns: 16
"vnsmrirkhqrkjgqjmiswsdjzqywbpd"
Returns: 21
"oxfqqlfdtwbxmxnmqboqjonxmowvzvx"
Returns: 26
"jibmizhufhpcdwzogczhhzwgptrzljud"
Returns: 24
"gqujiykoeqdypqctuhhwtmobtxkrmgtwe"
Returns: 20
"iiywojzdymowmfmvwkpdcvdrcmbgowrueu"
Returns: 29
"ejhonyduovxvwnisznznmedjzzrqgaqqbiu"
Returns: 23
"kecawgtxfuwmbgelpdjwrewqnxkztbbhyjnp"
Returns: 24
"xebehwtklyprdqsroqxcvmpmnqkeblarooshd"
Returns: 26
"tlhkxiihsildsolrifgtpnyyfbcyhgytsgibdx"
Returns: 31
"gyamaduuvevmzgclbufazgkoiutlzsdsgocxlyk"
Returns: 30
"vfwgbyozohyxupjjsmufcbsbtgrklmtknwjfsrtu"
Returns: 35
"fjmkxxtapezfdzduwxseomnfiuobhljfpquyuvblk"
Returns: 30
"sdwyzxeewvxytrgdhnpygjzgpgfsyorciqjnoromdu"
Returns: 28
"oqcwaiywhovohaqjjatylvndjvxplyuawoyekcmkrjw"
Returns: 33
"xbevabhcyfwtybuaxfqluvnrnprzohfnhsacyzyxftdr"
Returns: 38
"zxgqxaznqojjlwxafkgxzuzlcgrlhxhxrnfxhiigyzvgt"
Returns: 38
"brzvjmxsarukftzpbynsdbzcimvijwvzfbahlpmlzasves"
Returns: 38
"efgteztyxlxdfmufenlhoqvfklnzrcktiqkipfgtrfuirsi"
Returns: 39
"vdnwkrhxzuztlcnsmzpoltjpsztqmqhwfjoohlczsbeaqwmq"
Returns: 41
"ffllmxowxvwvtdjtdaeclrunyodthzxphfptccmgsspzhseoa"
Returns: 44
"esvinzhzrodrhkzfuorlwtxwbxwefuhklyhvzyiqaycfuuqhja"
Returns: 44
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Returns: 0
"ffggfggffgggggggffgffggggffggffgffggggfgffgfgfggf"
Returns: 21
"pfdpzvhamtrmwxlxpxgwuiqcspmqzsedcsummwivduanvmnqjl"
Returns: 32
"ueubyfvnialatabyxptbhvabtpwtvkbatxdottpmtjgcwcjkex"
Returns: 27
"envfbrqbvvcynhhnvvfkkavvgcevakuzevqkudogmebcybkvjv"
Returns: 23
"szivqlcbqvhbvdraqrindmbnrnumzitmzavqvchvylguzeado"
Returns: 30
"qgofmmuosoksikxrnhghqbkjkospcxghgjuciknvpjoryzwigq"
Returns: 29
"auinlrymrchsntpqcppfwrsnwuwpvgrxodrynillrmkpcusua"
Returns: 25
"imdfoyudyhkckrvduillnuoeiyeounlliudbqlmkhyruifzscy"
Returns: 18
"xrepayuyubctwtykrauccnquqfuqvccuaakylwlcjuyhyammag"
Returns: 11
"ozppevgxnmiedpmcvayhiwwlevhwbwgascepdmbmnqrlmpjko"
Returns: 16
"pxcjmksjarnxnmwdkomndkukmmkwkxnmokeumnenqdjskmwfxp"
Returns: 13
"tmjgnvgeyhgkiwmeextjgkafdyakgptxeejzilgoyegvwgpjt"
Returns: 9
"xpegbfbspqpztvbfmkrsrpkbppbkpqwrkmfbjuzpqpsbfbgcps"
Returns: 8
"rgrodfsgcqbeysgcxeetcwunggnuwzneexcgslebuzgsfiorgr"
Returns: 6
"zcvaavomgutkxegjnvidkvvrcrvvjdxvnkgexktugmovaavrb"
Returns: 6
"eclkjqypfgtfindsftmhdlkwumkldhwtfocnqftgfjyqjkldb"
Returns: 8
"hdynujaalhqtecaemwmsslsdccdslssmwmdacdtlhqvajunaeh"
Returns: 7
"sepggadcsdpfsmdpwhbodscfeexcsdabhwpdusxpdsldatgpes"
Returns: 6
"prwpmyprfutdqtnhqbmadwasaasawdambqhntqxtmfrpympwrp"
Returns: 2
"legzuvvdyjsjkzqksnpndsbapabsdnpnsxqzkjsjydvvuzgel"
Returns: 1
"xjkmtjwvrpkutmpcutkzaphsjjohpaaktucpmtrkpuvwjtmkjx"
Returns: 4
"abaabb"
Returns: 3
"abbbbbbbbbbbbccccc"
Returns: 6
"aaaeeeeeeeeeebb"
Returns: 5
"abccacb"
Returns: 4
"blwejugosajrblrdlwdmxeoreoveoxhotcnqdltgptcnranxfm"
Returns: 41
"aaaaabbbbccccedddddeeeeeeeeeeefffggghhhh"
Returns: 28
"abcdaeeeeeeeeeeeeaaab"
Returns: 9
"aaccccbbb"
Returns: 5
"aabccccb"
Returns: 4
"abbbbcc"
Returns: 3
"gaaaaaaaaabb"
Returns: 3
"abyzyz"
Returns: 4
"aayyyyyz"
Returns: 3
"baccca"
Returns: 3
"abbbcc"
Returns: 3
"caaaaabb"
Returns: 3
"baaaakkk"
Returns: 4
"aacccbccb"
Returns: 4
"tkweazqgmplohyxrutojvbzllqgjaidbtqibygdzcxkujvwghw"
Returns: 43
"abccccccccccb"
Returns: 3
"slkjfdaqefsakjdfh"
Returns: 11
"ccccaaaaacbbab"
Returns: 8
"abcccccb"
Returns: 3
"aaaabbbbbbbccccc"
Returns: 9
"aacccb"
Returns: 3
"aabcccccb"
Returns: 4
"ccccaabdccbcccc"
Returns: 4
"aaacccccbddb"
Returns: 7
"abcabcabc"
Returns: 3
"accccbb"
Returns: 3
"tsvhsvohygungszjrziksodnurcfxngammyaopbvjijqanberc"
Returns: 45
"abcdaeeeeefgfeggfeeeeeeaaab"
Returns: 12
"abcdeghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihfedcb"
Returns: 48
"aaeeeeeb"
Returns: 3
"wlrbbmqbhcdarzowkkyhiddqscdxrjmowf"
Returns: 24
"zaazbbbbbaaa"
Returns: 7
"abcddedcb"
Returns: 6
"aabbcccddddeeeefffffffffgggddddggggg"
Returns: 27
"acccccbb"
Returns: 3
"aabbbcccbbbbc"
Returns: 6
"acccbb"
Returns: 3
"acaaaccccb"
Returns: 5
"acccab"
Returns: 3
"yyaaaaaaaaaaaz"
Returns: 3
"heebdbbacdhfhahaecgeffhch"
Returns: 19
"dbaddbbdcaabbadaaeaeceeeeeedbbdeddebbabbcccecdbcec"
Returns: 38
"abcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbay"
Returns: 48
"aaabbbcccdefgcccbbbaaa"
Returns: 2
"caaabcbaac"
Returns: 5
"aaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbb"
Returns: 25
"aaaccbdddbbb"
Returns: 8
"aeaeeeeebb"
Returns: 4
"baaaaacc"
Returns: 3
"zzuhvrkprsipcjbjvvxjvgvvfcgsjnwlpqfestwcapnbdmzz"
Returns: 33
"aaaaacccccccabbb"
Returns: 9
"aaabebcd"
Returns: 5
"abbbbbcc"
Returns: 3
"aadefgbbbc"
Returns: 6
"deegabddgeebgehgcadgdfaheefdfcdccgafbgfehcaaehdccf"
Returns: 41
"ababababbbabababbbababbbbababbba"
Returns: 12
"abbcccccb"
Returns: 4
"asbdshjhjidsdsghavabsdc"
Returns: 15
"gseees"
Returns: 3
"ababbbbbbacc"
Returns: 5
"aabbcb"
Returns: 3
"qwertyuioplkjhgfdsazxcvbnmlkjhgfrtyewqaindhsjausid"
Returns: 39
"abbbcddac"
Returns: 6
"aabccb"
Returns: 4
"accccccccbb"
Returns: 3
"aabbbbc"
Returns: 3
"acddddc"
Returns: 3
"qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvb"
Returns: 25
"accccccab"
Returns: 3
"aaccccb"
Returns: 3
"xxxyyrzzzzzzzzzttttzy"
Returns: 11
"aaccddcb"
Returns: 5
"adfglkregccnquqfuqvccuaakylwlcjuyhyammag"
Returns: 29
"accceeeeeddddbb"
Returns: 10
"dddbabdbbddd"
Returns: 5
"aaaaaacbbbbcdefgh"
Returns: 11
"aabccccccccbcb"
Returns: 5
"lwqsokphdwuuoeamwkswxhjvojnmtifggvzuhodllxhzb"
Returns: 40
"abacccccccbb"
Returns: 5
"nwlrbbmqbhcdarzowkkyhiddqscdxrjmowfrxsjybldbefsarc"
Returns: 45
"aaaaffffffffffffffffffffbbbbbcccccdddddeeeeebcde"
Returns: 28
"adbcbccb"
Returns: 5
"aaaccccbb"
Returns: 5
"aaaeeeeeffffbbbb"
Returns: 11
"aaaaabbbbbabccbbbbbaaaaa"
Returns: 13
"sssscccbbbabba"
Returns: 9
"bbbaaaacc"
Returns: 5
"aaccccccccccccccccccccccccccccccccccccccccbcb"
Returns: 4
"slkjfdaqefsakjdfhsdjfskdfskdjfhsk"
Returns: 27
"abbbcac"
Returns: 4
"acccedbb"
Returns: 5
"accccbbcccbb"
Returns: 5
"cccaabcccc"
Returns: 3
"ccbbbba"
Returns: 3
"abcbac"
Returns: 4
"kkkkkaaaakkkkkk"
Returns: 4
"aabccccxxxxxxxxxxxxxxxxccccbcb"
Returns: 5
"abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwx"
Returns: 25
"abcdefghijklmnopqrstuvwxyzabcdefghiklmnopqrstuvwz"
Returns: 42
"abbbbbabbbbbb"
Returns: 2
"vmgxepcrtmjsrevoxipeqwzeqzvbcefwdrpybwnfmrdzboucyj"
Returns: 44
"acbccb"
Returns: 3
"abeeeeb"
Returns: 3
"agggggggff"
Returns: 3
"rahjmyuwwkrxnfmqgeebeoapezsdzspmqcxjtgdyxkrpvmwmmp"
Returns: 41
"aabbbbbbc"
Returns: 3