Statistics

Problem Statement for "EllysAnagrams"

Problem Statement

Elly has two strings of the same length: A and B. Now she wants to transform A into an anagram of B by changing some of its letters. The only operation the girl can make is to increment some (possibly none or all) characters in A. E.g., she can change an 'A' to a 'B', or a 'K' to an 'L'. She can increment each character arbitrarily many times. E.g., she can increment an 'A' three times to get a 'D'. The incrementation is cyclic: if she increments a 'Z', she gets an 'A' again.

For example, she can transform "ELLY" to "KRIS" character by character by shifting 'E' to 'K' (6 operations), 'L' to 'R' (again 6 operations), the second 'L' to 'I' (23 operations, going from 'Z' to 'A' on the 15-th operation), and finally 'Y' to 'S' (20 operations, again cyclically going from 'Z' to 'A' on the 2-nd operation). The total number of operations would be 6 + 6 + 23 + 20 = 55. However, to make "ELLY" an anagram of "KRIS" it would be better to change it to "IRSK" with only 29 operations.

You are given the Strings A and B. Find the minimal number of operations needed to transform A into some other string X, such that X is an anagram of B.

Definition

Class:
EllysAnagrams
Method:
getCount
Parameters:
String, String
Returns:
int
Method signature:
int getCount(String A, String B)
(be sure your method is public)

Notes

  • We call two strings X and Y anagrams of each-other if we can re-arrange the letters in one of them to get the other.

Constraints

  • A and B will be between 1 and 50 characters long.
  • A and B will have the same length.
  • A and B will contain only uppercase letters from the English alphabet ('A'-'Z').

Examples

  1. "ELLY"

    "KRIS"

    Returns: 29

    The example from the problem statement.

  2. "TOPCODER"

    "TCOINDIA"

    Returns: 57

    Several of the letters are present in both strings.

  3. "HARDEST"

    "THREADS"

    Returns: 0

    The first string is already an anagram of the second.

  4. "AAAAAAAAAA"

    "ZZZZZZZZZZ"

    Returns: 250

    Some strings may require many operations.

  5. "AWIODJGWAMBAUWNMQEROAIQWYRZSVEPTT"

    "BNSIAELDALCGAWOPIWEQTYCNAZEKJXVYU"

    Returns: 105

    Random keystrokes.

  6. "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"

    "ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"

    Returns: 1250

  7. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    "THEQUICKBROWNFXJMPDVLAZYDG"

    Returns: 11

  8. "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

    "ZZZZZZZZZZZZZZZZZZZZZZZZZZ"

    Returns: 325

  9. "ABCDEFGHIJKLMNOPQRSTUVWXYABCDEFGHIJKLMNOPQRSTUVWXY"

    "AAAAAAAAAAAAAAAAAAAAAAAAAZZZZZZZZZZZZZZZZZZZZZZZZZ"

    Returns: 623

  10. "X"

    "X"

    Returns: 0

  11. "X"

    "Y"

    Returns: 1

  12. "WI"

    "OH"

    Returns: 17

  13. "UJM"

    "PPP"

    Returns: 30

  14. "JCPLZ"

    "BKGKI"

    Returns: 51

  15. "PTOYIIPI"

    "NXYNPVMH"

    Returns: 43

  16. "DVWVLBNAUE"

    "JKGKYKSZWE"

    Returns: 74

  17. "MABAEMBJHVPEMHIWOPCZ"

    "HKRIEIRSHMMGBSDPPKXU"

    Returns: 92

  18. "AGJSWTPQLGIYMDJJYXKWQASCJJVPVI"

    "JAHVQKBWEAFMJZDVVKIZYRWUGOTOOH"

    Returns: 79

  19. "VXZJCBNLYATVJYTYIFMKLXXTZHPGGKIDVLVGQWGLRIPOQRIFSX"

    "LLZGMDYYELUZMOAEVIXEFLQKMAJOHOWOPXCYARWGIQOMACTHSO"

    Returns: 106

  20. "HIUOTXSDDDKIIRBZJGPEZLWPVHDYLROSPJCUFCXTKSVCFPMBRH"

    "KPFAAJRECLUIGMYYGKKYIHQLXVRGAXSCTNMCWYJNZVQXKYIFNU"

    Returns: 114

  21. "JVBJOUJEDNMOPEFIQISPYNAJIODTDYXIPPGUQWXPXLUZAYUNNQ"

    "JFPNKQGBTRLZIRWGLHWOCOXSGPZERHTLQFHQLHJKJKNOLGUNYU"

    Returns: 129

  22. "JUODAVCQDGFWTBEBEEKDIDTJFCEOJWJORWDSKZELQHDLCOJOLD"

    "TVWRQWPPYSQEXVVVAWANTUWHTKVRVPFLJXEVOGXNJKFLQFILWG"

    Returns: 274

  23. "LMZSBOUVJCXULXEZFLMIYISTM"

    "KZRINFSSJGLZIOBXJOXDMQZLY"

    Returns: 70

  24. "DBPYRLXDHMKFWOZSTSPIDKWUIYOCKZXHSVJPP"

    "ZKDNRBHYINSAZZRLLJZYLXEUPALCXASSGVVDL"

    Returns: 81

  25. "YRURWONZTXQHPOLEJUNEVBEXTOSRRVWNJAPHQNYQRDHQX"

    "IZTWDFXYOOTZMKTYNIOMKYFKAOKMMAUIJFMEGPCECKPTH"

    Returns: 249

  26. "CGNDKXNLQGKZTSGLU"

    "KMYEEXLDOQKXKXVSP"

    Returns: 55

  27. "UGYKEFQOMZRXWVQCKEX"

    "SYHGGABPIMKEDYGDGPY"

    Returns: 74

  28. "MEOZSKRXNLQELOFA"

    "PIOTOUOZBEZARHAF"

    Returns: 69

  29. "DSERJZIORZKUPQFBYFDYWYHSPRXGQOQKH"

    "ANXAMAXMTOEHGEJLXZDKGMLAVCPMPBPYM"

    Returns: 140

  30. "PZNOTSCBIGWFPLUVVAAEFICIOUCESKTSDJVD"

    "LHXMPTGBTRNCMCPXRFOWXYNFCFTLJEHSQOZC"

    Returns: 100

  31. "VSBBNMSJSKLPGGFJEVIRDXRUFUMQLJFHNEKMKIFVB"

    "FNNLGKIESMZWBICOIBWRIXWZXNISHDRKPSNAQKMVB"

    Returns: 100

  32. "MBXZVCFRPVXTTWR"

    "DUCKFWGGDLIOKLA"

    Returns: 123

  33. "LPGFDIAZCKZYOGZADCPPMBLBZHXSMTGOCDVJCE"

    "GNMCOYNCTQAJCPLSMRMISTWTWOBBZUXWJNLFVZ"

    Returns: 163

  34. "VSKRTOYJASLFZNOSMDBYXRIZGZSTYQCBSHABIJRZ"

    "VSSCJFFUJYAXIQVVHNHBPVBOVQLJCDMEZGCCWRRW"

    Returns: 75

  35. "HUNPZXFQJJMSZSDOFMTPXBIKFKIRLGGOCQPHSEKVK"

    "FMXBVPFBXXIVHXVRDSXINXPPGLCSTKMEZQTTEZRTQ"

    Returns: 133

  36. "JVZIPRNGAFOWLBJFGWKDYCKSDSFPJW"

    "MEAODMKKWPGFRJYKPJOJOVSLZMYRBR"

    Returns: 84

  37. "CSWRFLSSTRRBCTVVQXZIQHQBFVMHGIDEHQXVBRGSVPBHIHU"

    "GRIJKNCDWJRSDZJCEPWBYWOCCBXAXSLJIQUONJROWTOJRDR"

    Returns: 138

  38. "ZCPCDYDLVOCRSMEVTV"

    "HLMQKPYNDWLGLHXRQX"

    Returns: 91

  39. "TPSDMOADZEFSHKABIFIMAGNNSBSAON"

    "AGJAYMRTKZOMNDRQAPVKLPINWGSOPX"

    Returns: 105

  40. "TXXUUVXPBZCPIFELNJHTOAPRXLFKPNZFXWHOMOPLWLZQISNTE"

    "HYLFWDIBOJDSTKPRISGMLORLIRLMUPUJPGHYBUDMYEBCUDYGC"

    Returns: 139

  41. "UGZQTFEGYTMHWXBVPSQQVLIPRLSCCGDIVMBIYJHQAYFWCMOLJ"

    "GUNDWONIUJUZJTASKZOLKVRCMZUDKBSPBYQELEKDAJIFLOEDT"

    Returns: 95

  42. "SPESOYIBQNGOGDEKGSEKNUJGYMGXMBPAHYRYGMMGJBS"

    "CMUPXGSCPBPLDTATRKEBFKWPBLIKJIKFPVFOQTTEAIT"

    Returns: 108

  43. "ADUUTBBMJCHLJYRREJMMWS"

    "CWGBQWWZZZWCPSYZLMFJUP"

    Returns: 95

  44. "AIRTGYEYDY"

    "MYUEGZGEIV"

    Returns: 27

  45. "MFHVGXPGNDXGGMCSVTPQYBKJEJHTQTXJQHCVD"

    "EUIPOXDDLCYBEKZMEHBVMPJZSHHBIKPVHRORI"

    Returns: 79

  46. "DXMHTCXSEMULDXWDKZVEHCEOSW"

    "UTMWESHKGLRCLYHOFLFQJIBTOG"

    Returns: 96

  47. "OQUBHXACYCVCTZHLCEEPBTAAMWBNQOYJM"

    "VMBQNWOIDHPFTFVHWPJBDMRNYAIGEXTRD"

    Returns: 75

  48. "KKHUZIBMEGLSIAFKBUNGQZAEUVLO"

    "FJDNYUVCMZFIUQSFVXTACHERGMHM"

    Returns: 56

  49. "OKRQMDYRPXSPFSQOUMDGJTFESTRM"

    "VFQKAPMFNCQSTCKKVDMLLNDOJQOV"

    Returns: 97

  50. "SULBDXWINJRHKZLCO"

    "VSZVHECDBLJPQEBHC"

    Returns: 83

  51. "OSSFTSCZISSTWQWIIRPCTXBJAQBUNJCPZJBEHL"

    "QZRJJMSIASEZNWWMBWFZCRXGAHFELLXDLRGHTA"

    Returns: 108

  52. "AWIODJGWAMBAUWNMQEROAIQWYRZSVEPJTAWIODJGWAMBA"

    "BNSIAELDALCGAWOPIWEQTYCNAZAWIODJGWAMBAUWNMQER"

    Returns: 56

  53. "EQWHUIQWEGAKJSDGQWKJE"

    "QUWEKJQWEKLDNASDNBQWI"

    Returns: 61

  54. "ABB"

    "AAB"

    Returns: 25

  55. "A"

    "Z"

    Returns: 25

  56. "A"

    "B"

    Returns: 1

  57. "QWERTYUIOPASDFGHJKLZXCVBNQWERTYUIOPASDFGHJKLZXCVBN"

    "MNBVCXZLKJHGFDSAPOIUYTREWWERTYUIOPASDFGHJKLZXCVBNM"

    Returns: 44


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: