Statistics

Problem Statement for "DistanceBetweenStrings"

Problem Statement

The distance between two strings with respect to a letter is defined as (n1 - n2)2, where n1 and n2 are the number of occurrences (both lowercase and uppercase) of that letter in the first and second strings, respectively. The distance between two strings with respect to a third string is the sum of the distances between the two strings with respect to each letter in the third string.
You will be given three Strings a, b and letterSet.  All the letters in letterSet will be distinct. Return the distance between a and b with respect to letterSet.

Definition

Class:
DistanceBetweenStrings
Method:
getDistance
Parameters:
String, String, String
Returns:
int
Method signature:
int getDistance(String a, String b, String letterSet)
(be sure your method is public)

Constraints

  • a will contain between 1 and 50 characters, inclusive.
  • a will contain only letters ('a'-'z', 'A'-'Z').
  • b will contain between 1 and 50 characters, inclusive.
  • b will contain only letters ('a'-'z', 'A'-'Z').
  • letterSet will contain between 1 and 26 characters, inclusive.
  • letterSet will contain only lowercase letters ('a'-'z').
  • Each character in letterSet will be distinct.

Examples

  1. "topcoder"

    "contest"

    "tcp"

    Returns: 2

    The letter 't' occurs once in the first string and twice in the second; the letter 'c' occurs once in the first string and once in the second; the letter 'p' occurs once in the first string and does not occur in the second one. The total distance is 1+0+1=2.

  2. "abcdef"

    "fedcba"

    "fed"

    Returns: 0

    The second string is a permutation of the letters in the first one thus the distance is 0.

  3. "aaaaa"

    "bbbbb"

    "a"

    Returns: 25

    The distance with respect to a single character in this case is 5*5=25.

  4. "aaAaB"

    "BbaAa"

    "ab"

    Returns: 2

    Lowercase and uppercase letters are regarded the same.

  5. "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

    "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    "ba"

    Returns: 5000

    These two strings are quite far away.

  6. "ToPcOdEr"

    "tOpCoDeR"

    "wxyz"

    Returns: 0

  7. "hmalLDFrvcGbkNdxfFzSTjRpgRNVsMcsyqEIeFzIka"

    "vsEZyxXLgpfdOeXBoj"

    "abcdefghijklmnopqrstuvwxyz"

    Returns: 62

  8. "pxjLoAwxhsCXosZvtDnYYFxSnkfUXRBngoktYNouzr"

    "dItijayPSmSjF"

    "gbaolynrdpstwz"

    Returns: 50

  9. "liTDvHCLVyWbsMOXLCmXhmnefXtgGPynECk"

    "pSKJggkDzEPvgIpSDJzjLhBQkmzbwbDuFkrrEmdyJehsQoIIFo"

    "edpznv"

    Returns: 28

  10. "ABZseuNPSabzxhcHErUKM"

    "PWq"

    "goamwdyxtbh"

    Returns: 15

  11. "JXHoPwyhQHBFvnqRJX"

    "ovIxZzsKUvjRMzOkIERadgNUhxQJjwxMSHLqZdTZtjNXgSS"

    "zncvafmohwbujr"

    Returns: 45

  12. "yCZIkAXGCCyJgxtVRhBpIBV"

    "BgcQkoZkbjMSTsFOfsRJGzuZwiuPxqLUvowcdNfJAmcFkiUUI"

    "wbeukczodhf"

    Returns: 64

  13. "BKdQIfbcH"

    "HDGjlLAAcrsiDTClfeJt"

    "hcabexgyrdpmofq"

    Returns: 14

  14. "XwmXYgdazgvoKGCmMRhyYgjkkZAxkozmuZzphtyZvu"

    "prMIgkrzXHOmAYAXvhQIESgHJUXmsNrekgCvHJBTqJoGKF"

    "fcewrpsmtgnju"

    Returns: 21

  15. "yMmUKHedrcfzgpFdjjwqUqIvVzyIGULjUSABLmQMjJHS"

    "qtdEm"

    "cbrteywgjlm"

    Returns: 51

  16. "rtJjAijWYNR"

    "iOwiYtdAwhgwMGnLJGuNhEg"

    "fkstj"

    Returns: 4

  17. "QAuDCJcYFVIUegIDCgrdEAuNGpOyOCqKMu"

    "jmChdMHQahrtFAlGZkDcLEjmnRyZiRNWcXeRuXR"

    "uejbx"

    Returns: 14

  18. "HsCnunDFMZatCkAyZxTbGnvPGjgMxbCYCqhDZrBM"

    "r"

    "xothgnrcmjw"

    Returns: 56

  19. "ChbjlMqgMpEStLGfPuSUCY"

    "VHpurwIxFPpFLpPeF"

    "mkqznutpdysv"

    Returns: 22

  20. "EwOISqCsmhsvOWfWGIAVoQOIsq"

    "QeTDUTNXrXWLgyBoYNlaOS"

    "kfahm"

    Returns: 3

  21. "JrnDcDDRpYZyoUtWlRlZZBUXoFNrwa"

    "NojiVoQ"

    "nkv"

    Returns: 2

  22. "btHYkIuHtudbMnFAQKLZtjAeFuKlJqdFpLVRtDkFJSwxIJ"

    "ERxzAP"

    "mwroutqaygl"

    Returns: 42

  23. "HlEZOSKuGNnAJpIOGDHnoxJMSKHwOMlbscZlqWmVHMOpBy"

    "WGOnixpAKNTuAZOdwm"

    "cgeq"

    Returns: 4

  24. "rJYakrYrUjNQNKpMklAEv"

    "QZvZuAPgPPzzvNCF"

    "spaxfvtoreqn"

    Returns: 18

  25. "WYaaJQePYSTzvDYSxbfVTOIZPhzAMnni"

    "MUCtSQMnpHwjzKc"

    "mpxzywtiqer"

    Returns: 22

  26. "YVdYtCyfpSYGGMITtNOTnYWtgGpPxaOzbdVhfmfsRQvMOP"

    "FSZpJERkJUUclKyOGToRjPEwxPwgm"

    "edfqcsilgtkxh"

    Returns: 41

  27. "brLGGAZSuZfHxjjvaxANmJVUNcYEWOHsRvpVzizuWFL"

    "tQXyidjEKeb"

    "lyranxumib"

    Returns: 32

  28. "dlsljPXEmFycAQeFnpfNEbCPYLbtLLERKxTuPTyTQBB"

    "OoKnyrAmjZNSySx"

    "bowvrclqiykzmt"

    Returns: 71

  29. "vMHISpqJDy"

    "WYtlysKA"

    "sbvr"

    Returns: 1

  30. "FdjgvxVqRAugiY"

    "BXpZChBIIXqTqeaJqoPfuqvXmXsapLAOLluTQRWWMhKD"

    "cfbivzy"

    Returns: 9

  31. "TwtKOkmIYRXxZEBeKQirALyPobJeA"

    "WKvOdFIWcTzVwOAuKEUKzHukNvCLKPMFCqRvVRFPkqcpYA"

    "t"

    Returns: 1

  32. "zItRS"

    "CPGLxAgyUiuDahKXtIXGZmyOFcQIFZufFGoSGUx"

    "ulvphzsfxqwdmgkr"

    Returns: 82

  33. "VzSqNOujJwSxqyCzOljRTSidIlqgsShjRlwnXFWkTj"

    "XuFjXoNQJhmOWeHEvTzoLDMxYypjzVGwKwZBStSofGwezU"

    "mabqhrxjcsfyku"

    Returns: 32

  34. "hYWBzSZyVqlnsprFbSpKwKRuyrmoAYmESCmYGMXkyCRkgUS"

    "cbeJizgeWp"

    "rlivczxhm"

    Returns: 39

  35. "eKFLJesZHFWwxGPlAGMByBChSohmoPZxmmyGguJbXHOOMtQte"

    "OXz"

    "htflkrusqpia"

    Returns: 40

  36. "cnUoTkXwAJWQnHDTSnTzJqFCfmhVsivjuIcaMwwTZ"

    "PwBjhPtePBugrLHWjR"

    "vszaqeob"

    Returns: 26

  37. "BDDdEi"

    "zouzQIWuOrQcLZpdipnOcvpGGFYtwqtiuvahSCxUyhGGFibU"

    "oufdxhswtnjcbe"

    Returns: 67

  38. "msYzmwEFrqYEmErmXLbYehlMEqKiXiguktzL"

    "EXL"

    "zd"

    Returns: 4

  39. "hKxWZDPsokFcc"

    "vJFJCdDWNOrGRrQVPzLJvcPz"

    "spnfoqmhwvbduir"

    Returns: 24

  40. "S"

    "c"

    "is"

    Returns: 1

  41. "jRHmLBpcEwsNuqbGggMk"

    "Wc"

    "dlnsmebhfgriy"

    Returns: 23

  42. "xiPTwzpkaCmNMHXEPYboqNH"

    "cmYqinYQuzEvzWbSwKJNvcvXCHn"

    "uqwmfs"

    Returns: 5

  43. "cxIYDArkOmgdPkZjh"

    "TipghOkWdChQazUkAvAKwZdViHBdyMP"

    "khxruwjs"

    Returns: 13

  44. "XKsgmBzBfzOQstrkaS"

    "ENLjwMGKzKmTvxFxpYJOHUDTaztC"

    "temqcbgkihnpsyaf"

    Returns: 25

  45. "xdNFBHYZkWchQZHBRLKCF"

    "CPrAoYWvaUcmnHoEamnaImewoQKMOzqpAiRds"

    "vzkp"

    Returns: 7

  46. "eRNSynQzZlIsmaHNNIToaMiguXRJZEUwvVlnar"

    "dNDlKZAintZxlklCqTnqNTdBiAX"

    "modiwagurvpx"

    Returns: 36

  47. "YUmaJpVv"

    "iWtBMuoIpwzADG"

    "avyrjoswmiczxqfg"

    Returns: 17

  48. "eUXIHUNWQwDdGqaBLUOmNPuhxHJELTIburMVOVxbthscLT"

    "OUkaKou"

    "nfpdyoqwvth"

    Returns: 46

  49. "jMEiIBCzcadlJEthdLRLrxcs"

    "UWzqIVwPLLkIoQHAlrylKFDXSCrxyfHbpeuMRIFKBzAOvHBH"

    "fbychtoqeiwrmdvnl"

    Returns: 52

  50. "kVGtEPIiXRvXuzKgOhHddvTHeKhFWpPecxwIVHfwfJYeDgtIkx"

    "yFpSj"

    "cg"

    Returns: 10

  51. "JjIdpzWICuelmGgVQZaXGbzKaXbMqWQGLLGPOeqPBMLNe"

    "fnujaCyDutrpJ"

    "anxlqkgfubypjcoz"

    Returns: 89

  52. "BRvEwtJnmzgKekuDyKTsYLcnOlUDRLnKZcEK"

    "zGLaMYclJsCJkPuVxlIamOJdrdrFYhHTIAfZgmHQitofCKadkA"

    "quywzfhpmi"

    Returns: 35

  53. "MYAYNcSJHqVcEQwlXOftIpuMmkPHHQgXiyWHYVd"

    "MDocuCYDcFIPMmIsEPwgsDPWFjoYiVmwGLEwVphxuF"

    "rhecqgzin"

    Returns: 23

  54. "ZHURlbPzNpGxGLLxTmlcTcztIfzmEknsIrXI"

    "gsoPcHOYzwbal"

    "vbyomagzn"

    Returns: 24

  55. "iqTGEKpWpHTyVaEfxgejkmUlaosiipNDbTaEziPmtHuN"

    "QBaNfleKRhDpwTVv"

    "jubirctzm"

    Returns: 36

  56. "NKRKMDracptMxtUmeRbbjlHilTvELlBYFBvFa"

    "LnJ"

    "fexlaohwkvy"

    Returns: 32

  57. "TgUDugRtOCBYHjgmPQvgMBvlqUVCEVlOZXoNLyukduTvAZKtx"

    "LBUkijxrALDvEPWhPkDgvQIQWqyPxiEqmF"

    "vngxsdw"

    Returns: 23

  58. "OFKUlfDOCuKrhQ"

    "BAEBHzPaBzsDaxAjtUSUTHdESrUgsWYVNksBhHQDTLwQuTiKb"

    "vhqkbnt"

    Returns: 53

  59. "hwUlSxFTQiIYZXdWkACnhSjULobgSfXWluj"

    "bfVYRKgqVHEomrMIdSqzENTbNEFd"

    "ms"

    Returns: 8

  60. "wqnRqjcAwzErpFYdjLMmYocuhEEEczvOYpsu"

    "JwCYxEydXjIdhxoBcfDQlFCBJYSKSpS"

    "agvcmetjxhsk"

    Returns: 30

  61. "NHgArFMPnlxQI"

    "bNJQOKklCUMbcJSAlnqBIZUQNJXKzKZQAphgSTkRoyhuK"

    "cygeofrxuijwlh"

    Returns: 30

  62. "a"

    "A"

    "a"

    Returns: 0

  63. "AAAAAaBBB"

    "aaaaaAbbb"

    "ab"

    Returns: 0

  64. "aA"

    "bB"

    "ab"

    Returns: 8

  65. "aA"

    "a"

    "a"

    Returns: 1

  66. "aa"

    "AA"

    "a"

    Returns: 0

  67. "AAAA"

    "BBBB"

    "a"

    Returns: 16

  68. "ricarDo"

    "juan"

    "d"

    Returns: 1

  69. "aaAA"

    "a"

    "ab"

    Returns: 9

  70. "A"

    "a"

    "a"

    Returns: 0

  71. "A"

    "B"

    "ab"

    Returns: 2

  72. "aAAaB"

    "BbaAa"

    "ab"

    Returns: 2

  73. "Abc"

    "abc"

    "ab"

    Returns: 0

  74. "aaAaBb"

    "aAAb"

    "ab"

    Returns: 2

  75. "AA"

    "A"

    "a"

    Returns: 1

  76. "AAAAA"

    "aaaaa"

    "a"

    Returns: 0

  77. "A"

    "b"

    "a"

    Returns: 1

  78. "aaAaB"

    "BbaAA"

    "ab"

    Returns: 2

  79. "aaaa"

    "AAAA"

    "abc"

    Returns: 0

  80. "Aa"

    "ba"

    "a"

    Returns: 1

  81. "AAAA"

    "AABB"

    "ab"

    Returns: 8

  82. "AAA"

    "aaa"

    "a"

    Returns: 0

  83. "aAb"

    "ab"

    "ab"

    Returns: 1

  84. "bbbBB"

    "BBBBB"

    "b"

    Returns: 0

  85. "aaAaBBBbBB"

    "BbaAaaaAaaaaa"

    "ab"

    Returns: 65

  86. "aAs"

    "aVf"

    "va"

    Returns: 2

  87. "AAA"

    "aaaaa"

    "a"

    Returns: 4

  88. "AaAaBb"

    "bbaaaa"

    "ab"

    Returns: 0

  89. "AA"

    "AAA"

    "a"

    Returns: 1

  90. "aaaa"

    "acccccaaa"

    "a"

    Returns: 0

  91. "Topcoder"

    "topcoder"

    "t"

    Returns: 0

  92. "TTT"

    "tt"

    "t"

    Returns: 1

  93. "abcdABCD"

    "aaBCddda"

    "abdec"

    Returns: 4

  94. "aAaAbBbB"

    "aB"

    "dbca"

    Returns: 18

  95. "aaAaB"

    "BbaAAAAa"

    "ab"

    Returns: 5

  96. "TOPCODER"

    "topcoder"

    "tcp"

    Returns: 0

  97. "t"

    "TTT"

    "t"

    Returns: 4

  98. "AaaaaAbbbbdddd"

    "aabb"

    "ab"

    Returns: 20

  99. "Joe"

    "jOE"

    "joe"

    Returns: 0

  100. "ToPcOdEr"

    "tOpCoDeR"

    "t"

    Returns: 0

  101. "TttTtTTT"

    "TAATT"

    "ta"

    Returns: 29

  102. "ajbdakjdbaa"

    "dsdsbasd"

    "ahbkm"

    Returns: 11

  103. "aAZz"

    "aVfzzF"

    "vazf"

    Returns: 6

  104. "aAaAa"

    "bbbbb"

    "a"

    Returns: 25

  105. "AAAA"

    "aaaa"

    "a"

    Returns: 0

  106. "aaaA"

    "aAbbBB"

    "abcdef"

    Returns: 20

  107. "AAAA"

    "aaa"

    "a"

    Returns: 1

  108. "Ab"

    "ab"

    "ab"

    Returns: 0

  109. "aa"

    "bbb"

    "ab"

    Returns: 13

  110. "aAaaaAAAa"

    "bBb"

    "ab"

    Returns: 90

  111. "BBBbbbBB"

    "ccccaaAAabbbccBCCC"

    "abc"

    Returns: 122

  112. "AABBbb"

    "AaaBbbbbbbbb"

    "ba"

    Returns: 26

  113. "AAAAB"

    "BBB"

    "ab"

    Returns: 20

  114. "ToPcOdEr"

    "tOpCoDeRr"

    "r"

    Returns: 1

  115. "abC"

    "abc"

    "c"

    Returns: 0

  116. "IHOPETHISWORKS"

    "IBETITWONT"

    "hpo"

    Returns: 6

  117. "hhhCCCDce"

    "abcehdddCD"

    "edca"

    Returns: 14

  118. "AAaa"

    "acccccaaa"

    "a"

    Returns: 0

  119. "TTTTTaaAbb"

    "ttttttaAabB"

    "tab"

    Returns: 1

  120. "aaaa"

    "bbbbbbbbbb"

    "ab"

    Returns: 116

  121. "ABCD"

    "abcd"

    "abcd"

    Returns: 0

  122. "Top"

    "top"

    "t"

    Returns: 0

  123. "Aa"

    "B"

    "a"

    Returns: 4

  124. "AAAAAAAAAAAAAAAAAaaaaaaaaaaaa"

    "AAAAAAAAaaaaaaaaaaaaaa"

    "ab"

    Returns: 49

  125. "aAAAaaa"

    "a"

    "a"

    Returns: 36

  126. "AaA"

    "A"

    "a"

    Returns: 4

  127. "a"

    "aaa"

    "a"

    Returns: 4

  128. "ABCDEFFFFF"

    "FF"

    "fa"

    Returns: 10

  129. "AAAAA"

    "BBBB"

    "ab"

    Returns: 41

  130. "aaaaaaab"

    "abbbbbbb"

    "ab"

    Returns: 72

  131. "AoPcOdEr"

    "tOpCaDeR"

    "axyz"

    Returns: 0

  132. "aabc"

    "aaabbb"

    "ab"

    Returns: 5

  133. "abc"

    "abcdefgh"

    "abcdefgh"

    Returns: 5

  134. "abcccAAABBBCCC"

    "abcccdefAABBCCC"

    "abcdef"

    Returns: 5


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: