Problem Statement
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
"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.
"abcdef"
"fedcba"
"fed"
Returns: 0
The second string is a permutation of the letters in the first one thus the distance is 0.
"aaaaa"
"bbbbb"
"a"
Returns: 25
The distance with respect to a single character in this case is 5*5=25.
"aaAaB"
"BbaAa"
"ab"
Returns: 2
Lowercase and uppercase letters are regarded the same.
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
"ba"
Returns: 5000
These two strings are quite far away.
"ToPcOdEr"
"tOpCoDeR"
"wxyz"
Returns: 0
"hmalLDFrvcGbkNdxfFzSTjRpgRNVsMcsyqEIeFzIka"
"vsEZyxXLgpfdOeXBoj"
"abcdefghijklmnopqrstuvwxyz"
Returns: 62
"pxjLoAwxhsCXosZvtDnYYFxSnkfUXRBngoktYNouzr"
"dItijayPSmSjF"
"gbaolynrdpstwz"
Returns: 50
"liTDvHCLVyWbsMOXLCmXhmnefXtgGPynECk"
"pSKJggkDzEPvgIpSDJzjLhBQkmzbwbDuFkrrEmdyJehsQoIIFo"
"edpznv"
Returns: 28
"ABZseuNPSabzxhcHErUKM"
"PWq"
"goamwdyxtbh"
Returns: 15
"JXHoPwyhQHBFvnqRJX"
"ovIxZzsKUvjRMzOkIERadgNUhxQJjwxMSHLqZdTZtjNXgSS"
"zncvafmohwbujr"
Returns: 45
"yCZIkAXGCCyJgxtVRhBpIBV"
"BgcQkoZkbjMSTsFOfsRJGzuZwiuPxqLUvowcdNfJAmcFkiUUI"
"wbeukczodhf"
Returns: 64
"BKdQIfbcH"
"HDGjlLAAcrsiDTClfeJt"
"hcabexgyrdpmofq"
Returns: 14
"XwmXYgdazgvoKGCmMRhyYgjkkZAxkozmuZzphtyZvu"
"prMIgkrzXHOmAYAXvhQIESgHJUXmsNrekgCvHJBTqJoGKF"
"fcewrpsmtgnju"
Returns: 21
"yMmUKHedrcfzgpFdjjwqUqIvVzyIGULjUSABLmQMjJHS"
"qtdEm"
"cbrteywgjlm"
Returns: 51
"rtJjAijWYNR"
"iOwiYtdAwhgwMGnLJGuNhEg"
"fkstj"
Returns: 4
"QAuDCJcYFVIUegIDCgrdEAuNGpOyOCqKMu"
"jmChdMHQahrtFAlGZkDcLEjmnRyZiRNWcXeRuXR"
"uejbx"
Returns: 14
"HsCnunDFMZatCkAyZxTbGnvPGjgMxbCYCqhDZrBM"
"r"
"xothgnrcmjw"
Returns: 56
"ChbjlMqgMpEStLGfPuSUCY"
"VHpurwIxFPpFLpPeF"
"mkqznutpdysv"
Returns: 22
"EwOISqCsmhsvOWfWGIAVoQOIsq"
"QeTDUTNXrXWLgyBoYNlaOS"
"kfahm"
Returns: 3
"JrnDcDDRpYZyoUtWlRlZZBUXoFNrwa"
"NojiVoQ"
"nkv"
Returns: 2
"btHYkIuHtudbMnFAQKLZtjAeFuKlJqdFpLVRtDkFJSwxIJ"
"ERxzAP"
"mwroutqaygl"
Returns: 42
"HlEZOSKuGNnAJpIOGDHnoxJMSKHwOMlbscZlqWmVHMOpBy"
"WGOnixpAKNTuAZOdwm"
"cgeq"
Returns: 4
"rJYakrYrUjNQNKpMklAEv"
"QZvZuAPgPPzzvNCF"
"spaxfvtoreqn"
Returns: 18
"WYaaJQePYSTzvDYSxbfVTOIZPhzAMnni"
"MUCtSQMnpHwjzKc"
"mpxzywtiqer"
Returns: 22
"YVdYtCyfpSYGGMITtNOTnYWtgGpPxaOzbdVhfmfsRQvMOP"
"FSZpJERkJUUclKyOGToRjPEwxPwgm"
"edfqcsilgtkxh"
Returns: 41
"brLGGAZSuZfHxjjvaxANmJVUNcYEWOHsRvpVzizuWFL"
"tQXyidjEKeb"
"lyranxumib"
Returns: 32
"dlsljPXEmFycAQeFnpfNEbCPYLbtLLERKxTuPTyTQBB"
"OoKnyrAmjZNSySx"
"bowvrclqiykzmt"
Returns: 71
"vMHISpqJDy"
"WYtlysKA"
"sbvr"
Returns: 1
"FdjgvxVqRAugiY"
"BXpZChBIIXqTqeaJqoPfuqvXmXsapLAOLluTQRWWMhKD"
"cfbivzy"
Returns: 9
"TwtKOkmIYRXxZEBeKQirALyPobJeA"
"WKvOdFIWcTzVwOAuKEUKzHukNvCLKPMFCqRvVRFPkqcpYA"
"t"
Returns: 1
"zItRS"
"CPGLxAgyUiuDahKXtIXGZmyOFcQIFZufFGoSGUx"
"ulvphzsfxqwdmgkr"
Returns: 82
"VzSqNOujJwSxqyCzOljRTSidIlqgsShjRlwnXFWkTj"
"XuFjXoNQJhmOWeHEvTzoLDMxYypjzVGwKwZBStSofGwezU"
"mabqhrxjcsfyku"
Returns: 32
"hYWBzSZyVqlnsprFbSpKwKRuyrmoAYmESCmYGMXkyCRkgUS"
"cbeJizgeWp"
"rlivczxhm"
Returns: 39
"eKFLJesZHFWwxGPlAGMByBChSohmoPZxmmyGguJbXHOOMtQte"
"OXz"
"htflkrusqpia"
Returns: 40
"cnUoTkXwAJWQnHDTSnTzJqFCfmhVsivjuIcaMwwTZ"
"PwBjhPtePBugrLHWjR"
"vszaqeob"
Returns: 26
"BDDdEi"
"zouzQIWuOrQcLZpdipnOcvpGGFYtwqtiuvahSCxUyhGGFibU"
"oufdxhswtnjcbe"
Returns: 67
"msYzmwEFrqYEmErmXLbYehlMEqKiXiguktzL"
"EXL"
"zd"
Returns: 4
"hKxWZDPsokFcc"
"vJFJCdDWNOrGRrQVPzLJvcPz"
"spnfoqmhwvbduir"
Returns: 24
"S"
"c"
"is"
Returns: 1
"jRHmLBpcEwsNuqbGggMk"
"Wc"
"dlnsmebhfgriy"
Returns: 23
"xiPTwzpkaCmNMHXEPYboqNH"
"cmYqinYQuzEvzWbSwKJNvcvXCHn"
"uqwmfs"
Returns: 5
"cxIYDArkOmgdPkZjh"
"TipghOkWdChQazUkAvAKwZdViHBdyMP"
"khxruwjs"
Returns: 13
"XKsgmBzBfzOQstrkaS"
"ENLjwMGKzKmTvxFxpYJOHUDTaztC"
"temqcbgkihnpsyaf"
Returns: 25
"xdNFBHYZkWchQZHBRLKCF"
"CPrAoYWvaUcmnHoEamnaImewoQKMOzqpAiRds"
"vzkp"
Returns: 7
"eRNSynQzZlIsmaHNNIToaMiguXRJZEUwvVlnar"
"dNDlKZAintZxlklCqTnqNTdBiAX"
"modiwagurvpx"
Returns: 36
"YUmaJpVv"
"iWtBMuoIpwzADG"
"avyrjoswmiczxqfg"
Returns: 17
"eUXIHUNWQwDdGqaBLUOmNPuhxHJELTIburMVOVxbthscLT"
"OUkaKou"
"nfpdyoqwvth"
Returns: 46
"jMEiIBCzcadlJEthdLRLrxcs"
"UWzqIVwPLLkIoQHAlrylKFDXSCrxyfHbpeuMRIFKBzAOvHBH"
"fbychtoqeiwrmdvnl"
Returns: 52
"kVGtEPIiXRvXuzKgOhHddvTHeKhFWpPecxwIVHfwfJYeDgtIkx"
"yFpSj"
"cg"
Returns: 10
"JjIdpzWICuelmGgVQZaXGbzKaXbMqWQGLLGPOeqPBMLNe"
"fnujaCyDutrpJ"
"anxlqkgfubypjcoz"
Returns: 89
"BRvEwtJnmzgKekuDyKTsYLcnOlUDRLnKZcEK"
"zGLaMYclJsCJkPuVxlIamOJdrdrFYhHTIAfZgmHQitofCKadkA"
"quywzfhpmi"
Returns: 35
"MYAYNcSJHqVcEQwlXOftIpuMmkPHHQgXiyWHYVd"
"MDocuCYDcFIPMmIsEPwgsDPWFjoYiVmwGLEwVphxuF"
"rhecqgzin"
Returns: 23
"ZHURlbPzNpGxGLLxTmlcTcztIfzmEknsIrXI"
"gsoPcHOYzwbal"
"vbyomagzn"
Returns: 24
"iqTGEKpWpHTyVaEfxgejkmUlaosiipNDbTaEziPmtHuN"
"QBaNfleKRhDpwTVv"
"jubirctzm"
Returns: 36
"NKRKMDracptMxtUmeRbbjlHilTvELlBYFBvFa"
"LnJ"
"fexlaohwkvy"
Returns: 32
"TgUDugRtOCBYHjgmPQvgMBvlqUVCEVlOZXoNLyukduTvAZKtx"
"LBUkijxrALDvEPWhPkDgvQIQWqyPxiEqmF"
"vngxsdw"
Returns: 23
"OFKUlfDOCuKrhQ"
"BAEBHzPaBzsDaxAjtUSUTHdESrUgsWYVNksBhHQDTLwQuTiKb"
"vhqkbnt"
Returns: 53
"hwUlSxFTQiIYZXdWkACnhSjULobgSfXWluj"
"bfVYRKgqVHEomrMIdSqzENTbNEFd"
"ms"
Returns: 8
"wqnRqjcAwzErpFYdjLMmYocuhEEEczvOYpsu"
"JwCYxEydXjIdhxoBcfDQlFCBJYSKSpS"
"agvcmetjxhsk"
Returns: 30
"NHgArFMPnlxQI"
"bNJQOKklCUMbcJSAlnqBIZUQNJXKzKZQAphgSTkRoyhuK"
"cygeofrxuijwlh"
Returns: 30
"a"
"A"
"a"
Returns: 0
"AAAAAaBBB"
"aaaaaAbbb"
"ab"
Returns: 0
"aA"
"bB"
"ab"
Returns: 8
"aA"
"a"
"a"
Returns: 1
"aa"
"AA"
"a"
Returns: 0
"AAAA"
"BBBB"
"a"
Returns: 16
"ricarDo"
"juan"
"d"
Returns: 1
"aaAA"
"a"
"ab"
Returns: 9
"A"
"a"
"a"
Returns: 0
"A"
"B"
"ab"
Returns: 2
"aAAaB"
"BbaAa"
"ab"
Returns: 2
"Abc"
"abc"
"ab"
Returns: 0
"aaAaBb"
"aAAb"
"ab"
Returns: 2
"AA"
"A"
"a"
Returns: 1
"AAAAA"
"aaaaa"
"a"
Returns: 0
"A"
"b"
"a"
Returns: 1
"aaAaB"
"BbaAA"
"ab"
Returns: 2
"aaaa"
"AAAA"
"abc"
Returns: 0
"Aa"
"ba"
"a"
Returns: 1
"AAAA"
"AABB"
"ab"
Returns: 8
"AAA"
"aaa"
"a"
Returns: 0
"aAb"
"ab"
"ab"
Returns: 1
"bbbBB"
"BBBBB"
"b"
Returns: 0
"aaAaBBBbBB"
"BbaAaaaAaaaaa"
"ab"
Returns: 65
"aAs"
"aVf"
"va"
Returns: 2
"AAA"
"aaaaa"
"a"
Returns: 4
"AaAaBb"
"bbaaaa"
"ab"
Returns: 0
"AA"
"AAA"
"a"
Returns: 1
"aaaa"
"acccccaaa"
"a"
Returns: 0
"Topcoder"
"topcoder"
"t"
Returns: 0
"TTT"
"tt"
"t"
Returns: 1
"abcdABCD"
"aaBCddda"
"abdec"
Returns: 4
"aAaAbBbB"
"aB"
"dbca"
Returns: 18
"aaAaB"
"BbaAAAAa"
"ab"
Returns: 5
"TOPCODER"
"topcoder"
"tcp"
Returns: 0
"t"
"TTT"
"t"
Returns: 4
"AaaaaAbbbbdddd"
"aabb"
"ab"
Returns: 20
"Joe"
"jOE"
"joe"
Returns: 0
"ToPcOdEr"
"tOpCoDeR"
"t"
Returns: 0
"TttTtTTT"
"TAATT"
"ta"
Returns: 29
"ajbdakjdbaa"
"dsdsbasd"
"ahbkm"
Returns: 11
"aAZz"
"aVfzzF"
"vazf"
Returns: 6
"aAaAa"
"bbbbb"
"a"
Returns: 25
"AAAA"
"aaaa"
"a"
Returns: 0
"aaaA"
"aAbbBB"
"abcdef"
Returns: 20
"AAAA"
"aaa"
"a"
Returns: 1
"Ab"
"ab"
"ab"
Returns: 0
"aa"
"bbb"
"ab"
Returns: 13
"aAaaaAAAa"
"bBb"
"ab"
Returns: 90
"BBBbbbBB"
"ccccaaAAabbbccBCCC"
"abc"
Returns: 122
"AABBbb"
"AaaBbbbbbbbb"
"ba"
Returns: 26
"AAAAB"
"BBB"
"ab"
Returns: 20
"ToPcOdEr"
"tOpCoDeRr"
"r"
Returns: 1
"abC"
"abc"
"c"
Returns: 0
"IHOPETHISWORKS"
"IBETITWONT"
"hpo"
Returns: 6
"hhhCCCDce"
"abcehdddCD"
"edca"
Returns: 14
"AAaa"
"acccccaaa"
"a"
Returns: 0
"TTTTTaaAbb"
"ttttttaAabB"
"tab"
Returns: 1
"aaaa"
"bbbbbbbbbb"
"ab"
Returns: 116
"ABCD"
"abcd"
"abcd"
Returns: 0
"Top"
"top"
"t"
Returns: 0
"Aa"
"B"
"a"
Returns: 4
"AAAAAAAAAAAAAAAAAaaaaaaaaaaaa"
"AAAAAAAAaaaaaaaaaaaaaa"
"ab"
Returns: 49
"aAAAaaa"
"a"
"a"
Returns: 36
"AaA"
"A"
"a"
Returns: 4
"a"
"aaa"
"a"
Returns: 4
"ABCDEFFFFF"
"FF"
"fa"
Returns: 10
"AAAAA"
"BBBB"
"ab"
Returns: 41
"aaaaaaab"
"abbbbbbb"
"ab"
Returns: 72
"AoPcOdEr"
"tOpCaDeR"
"axyz"
Returns: 0
"aabc"
"aaabbb"
"ab"
Returns: 5
"abc"
"abcdefgh"
"abcdefgh"
Returns: 5
"abcccAAABBBCCC"
"abcccdefAABBCCC"
"abcdef"
Returns: 5