Statistics

Problem Statement for "Spelling"

Problem Statement

A spell checker must use some way to determine which words to suggest when a word not in its dictionary is encountered. This is usually done by some sort of distance metric that determines the distance between two words. The words that have the least distance are then suggested. Your task is, given a dictionary (as a String[]), you must determine which word from the dictionary is closest to the given word, and return the distance between the two words.

Distance is calculated as follows:

  • Change a character to another character: +1
  • Insert a character into the given word: +2
  • Delete a character from the given word: +3

However, because people usually do not leave out or insert more than one character, your method may either insert or delete one character at most, but not both. However, the method may change letters in addition to adding or deleting.

If no words from the dictionary have length within one of the given word, return -1.

Definition

Class:
Spelling
Method:
distance
Parameters:
String[], String
Returns:
int
Method signature:
int distance(String[] dictionary, String word)
(be sure your method is public)

Notes

  • If the dictionary is empty, return -1.

Constraints

  • - Each word in the dictionary, and the given word, will contain only the lower case letters 'a' to 'z', inclusive.
  • - Each word in the dictionary, and the given word, will have between 1 and 50 characters, inclusive.
  • - dictionary will contain between 0 and 50 words, inclusive

Examples

  1. {"topcoder"}

    "topcoder"

    Returns: 0

    Perfect match.

  2. {"topcoder"}

    "tppcoder"

    Returns: 1

    One character mistyped.

  3. {"topcoder","topcod"}

    "topcode"

    Returns: 2

    When multiple dictionary words could be the match, pick the one that scores lowest.

  4. {"topcoder","appirio"}

    "aqpiri"

    Returns: 3

    One missing character, as well as a changed character. (p->q, and the o is missing from the end)

  5. {"topcoderevent"}

    "appirio"

    Returns: -1

    No matches.

  6. {}

    "hyp"

    Returns: -1

  7. {"eaesqnxpqfnt","eaesqnxpqfnt","vx","toyuxcjbdlqcdezngahj","lelwwgqbxniwtyfhdotacgjunhhedxaoo","hkmyavsafyhfjfufdloioevripzlyamuiaquv","nxhcaknhxbk","upagecpvplwhcfmnxjpzkxxqaldkdarybafxucwnezpcba","v","akomknwrjftyfrouyfbaotvmbvkivpzlimdqclrnifkwcoz","bidvyvjhoblocowuf","eaesqnxpqfnt","gnlen"}

    "iaesqnxpufnt"

    Returns: 2

  8. {"ejqqvygucqxhjdqyqrysa","iewuwdjbxljckkmbhpavqcgzfwfgcgi","kcsdmn","ejqqvygucqxhjdqyqrysa","ksoszfxwpayczrdgrhriptkkbbivswulvevposcmgpyesr","cgbstbbirieqyxbesfmguwnryefcz","frkmfprebjtwehkbepekfzgkufsjtpwzivdmglrmm","ecmysggxzqyppglaszwhlmnuniexv","xrxrvdxvnmcvpgatgxbgtsqedrpslkcicgsgr","ejqqvygucqxhjdqyqrysa","mngnfykhtxnizlwotzrtucldzutziehsvogfbzoexe","f","xgnrfqyaoakbdokeky","ejqqvygucqxhjdqyqrysa","ngkpokviaswomskhvinxycvaicgximpignijrqgrsxhkrufndo"}

    "ujqqvygucqrhjdbyqrysa"

    Returns: 3

  9. {"xtutezkzmwzhjvnvwthdmfccydo","ekhldxaodohxkaqqbvebuk","okchjeehnnbiughjfbdfbrqsuakhxmgzgqhds","ekhldxaodohxkaqqbvebuk","zeqqrzhx","ekhldxaodohxkaqqbvebuk","pgcittrltweotfxenqqtitqqirywauvtpf","hrozzqgwozuwuuz","ekhldxaodohxkaqqbvebuk","jvpmacuvlzalzoypmzqrcbwcqouebatqcuwlsfowe","vxnouiwenbozshymwmhqtkfkjfrmxhkumggzpbtmhx","sbccomfjcoockscfpqjhfqumlb","ekhldxaodohxkaqqbvebuk","ekhldxaodohxkaqqbvebuk","ekhldxaodohxkaqqbvebuk","ekhldxaodohxkaqqbvebuk","dwefkxiphthfefrnitlzxpgcfozjzk"}

    "kkhldxaodohzkaqebvebuk"

    Returns: 3

  10. {"vekitzszvqrdzropczwxzpxefnqtwqdodgctvt","inhrpldhgtcurwxgumxupqgxhhzfuzaqdllrbs","tvywlofli","wfgradshjjimynhtlqfkgfbhdyrtujc","qpyttzditkriwhwlpscofyjrdzoblzmahlwipnamnxq","nslvcgdcgoqrggpukbwuxrbklnwbrqahhndlnszfvk","sveciygbmbwyvqbkokckqniksdegsbqznyjpgl","dlooglpiumhlvtadfmtkfuajlkx","xhmdcwyzbzczdujtkpvfmu","cmbijlec","neknadjyubbfjugkkgyvprycdjqbnpnwwhlykwtgg","llsytsuyyfggfvghjqnhkeneiciiaomrptgmkeqygpri","qbpscmdtylgyoprjmxktormptxeaoavn","vekitzszvqrdzropczwxzpxefnqtwqdodgctvt","znwpypurhpbypay","hcfxqttzxq","vekitzszvqrdzropczwxzpxefnqtwqdodgctvt","yxryfkyjksdsagrn","vekitzszvqrdzropczwxzpxefnqtwqdodgctvt","xpbfmbdtpjocark","blrvbgyvgfibeukieq","rnymelpwvirzqbyir","vekitzszvqrdzropczwxzpxefnqtwqdodgctvt"}

    "vwkitzszvqrdzropczwyzpxefnhtwqdodgctvt"

    Returns: 3

  11. {"gsafmtfykrbhzfmkzbvcuohiderqw","gmtjzaajjgayzrrnetazmjijurkschbpcrkoop","ekjsvdxmqmkd","x","xgxekoiqhgbflwigczpopovrthzcub","hdafknkeaxucjpjrygjoqkjz","ekjsvdxmqmkd","oqvmmbkqawlmvwtaxzizblsyvpvighhqwvwtevyda","oiluzxhktzkstdywqxgcktpv","ekjsvdxmqmkd","qezxhoszguehpjphibofhpmwhfowyhanaqxwq","thviyjylfypuownplascqbavbytqgymsqiihkzqcyvaphdtdzl","ekjsvdxmqmkd","fglxefogfmjpeubk","ekjsvdxmqmkd","ekjsvdxmqmkd","ekjsvdxmqmkd","ttkulgvwbwnxnowbzezijjfehkaxsorvrqfnvnosmvmnjx","ekjsvdxmqmkd","ekjsvdxmqmkd","uikxoiwcvzpanmorzhr","dwhcengyanvkbrlqtprjjtnipkctixxkdt","ekjsvdxmqmkd","ekjsvdxmqmkd"}

    "xkjsvdzmjmkd"

    Returns: 3

  12. {"mpwyrernkmvxfanytupclisrnwawodmttpwvrcjrbqiqmgo","pexrgnnexflv","vyhzbdqer","qkybuzbfhiugkgu","gbrymromgrbqkdxaxwggimsev","dnjoobeowontvzwmudxludktjnzoeujndmnbcsdalwgjnebgjv","ogkfacqeabqkbezpimvjczxzywagfmseid","gtgnymndzvlffnosuomopjkhdcjzoilbyjtwcywxp","yemrvsqtxpwofxizkwcnpqjkgvurqvroytlgvlgrivl","ejevocoauchhublaxzccxiqmmbeyqletfngwrydngrt","mdmtzftjsixwtsjmypkjxncgvojzwovgotzipkzkrua","pjdypqprhjyyafxlwunenrhzsbwnqzsdmgrllkkfzey","eobbvtdtcxdtqddqlw","ixcdgoubahrvmunmzmkifjsdertladmuwpxtjidvlxer","aomwaoamyrzfyzouiaxuwzwxu","riowhf","qedg","zolixyyokjpbcxgwqarpcyxsycktd","ulotaijocyygshtnu","yfadlqmbrtjvnekbodmj","ymbytqvfpylhauyirzyhyqpehktvqtpaknasyeszqwcu","nnjmtwdocxhxwrixapvikwmufjnhyqcnvguxjixwmmipsvcm","cqghloqaphjjwplutbqx","nrsywxoxckhawwawgjrdwu","nnp","xuytmozpyoipqcdmxbiatlynsytosqelhbqceqvlxgch","ubbtiemepcmwlbnvkwijxhplbigfwcniqoxwsvklsgsyeft","hqnjtyammqsaxghmpdfwercpmwrrp","hvosxgpdpsnkkcdknlyfjaaxkqnxxxgj","viwlfibwmonitgalcifskhgvrhhsrfslenptgyidxixmn","qknluoarmocbtxbjfgwbefrhfdacv"}

    "lobbvtdtchdtgddqlw"

    Returns: 3

  13. {"sqreqqbzpzhytdwsfdzztpmqpwhknexjeuyvtgcofry","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","hfognwqtlaxaayufakqxmjgdxhetpgiif","uefvdqmjzbpocykzsl","vdyz","jfrwdespurepzehzkdjfni","giqowgjfwf","myzpfuiatktvzoeclaouxaalonqvilmijfriauy","wnpumnraseyfhlwmxobsemriyllt","vbqcaxjlgybvqdemhayielmtfkjwhvbbxdxcidhnnbqp","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","jmvqkmlrjpwwpomelxzyngceetk","dvwtiwzklfqomlnmlgrzaxfsayadkrmqcpootdotoc","fgkmbspsyclugqdskvwautzmwxzshsxlyezl","lzluynoruhxpldyscymhyqetwkgezwb","scywkfvflvbpbdwoztwgmervusxnhjryfg","ifbhwchvdoprtorfgavenkcbsihxbddjvfnjxmzdeiohfa","zqelxkbk","czonvkuzlfvnaiiuasaewvwrehgwsfyuvpgxxmiunpvzfqy","wrwsbfbgdwjndxh","gbslbkwojfq","axmojzaajgsqnau","duq","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","iliavclzd","cedybixqmmufo","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","leioozpaywsxcxtpzllikicsyatfethhqokipeguge","anqmmjhpifqlc","ppnf","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","wxeybadhgaospwj","kdkx","yhuepofazkizxnxaqiglfezglbfwarcxqjyqjummxggqgtrj","buudmsthosniiaihkioohr","vunzyjzskvlywhtdqejubzdpgyiwkdudjyyjztuyoad","xblzqexkywuwrysaadhhahoyjk","wjkgawqre","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","nq","abgonrxbbqcbuhscwpmvhaecrzsafejrxkbrvm","gnruvnlsinxelb","laxdwnzxwxgkdjgbhjhfhqfioghjmhzyqcyburqth","ierwffkdlmaaqeekcndxqlklsfgqoyvleitrgee","qvjtlzyhaqeuvpcgfcbmsffyhkgxxfaboxwalvdqihkytnx","iybmscflpkmbsakvqdgyscvj","kdkugfumupydnjmrlkajbxixpiqgztgcrnhyvqjfspyllsctth"}

    "icrwffkdlmaaqeekcndqqlklsfgqoyvleitrgee"

    Returns: 2

  14. {"b","ex","ex","ex","azuxclderonsmluimhagiixhhzrmxdmuljbalkbvbbkdj","wyorakkoprbnpctrhncsgcjt","bgefgxuyvdtygcbkxukzyuybjtwbqftouuzdfjiuhouz","t","ex","ex","ex","ex","vjbnfjbevosyvwpcokcczrwebwhfacdxfzrfzimmajz","ex","dnxljbvdskvsvfkdfxpcprrisnnznagwfcnrbxdkeghtz","nnvkvzlyhlwotwnwqseyntrtbiufxjkx","ex","opbdtvcinffaxazgrvnsonxngypype","iotvhhygebtrbfgwbvgmlipbb","ex","ex"}

    "iw"

    Returns: 2

  15. {"uewosqkh","eqzbyxaqlps","rnxmzvkpnhhyfvwpybez","wjnvzxjjmlcufadnuhrqopmfggvmqthxbmudjraxagawed","eqzbyxaqlps","eqzbyxaqlps","hxhosbwssefssgzddgt","eqzbyxaqlps","n","eqzbyxaqlps","eqzbyxaqlps","iepzuqjurtgpqyffvvriajewgoolswxlnhjkzfsxijjus","eqzbyxaqlps","eqzbyxaqlps","bixdrzlqnezqoqjykgpmtcxekaeqxpkmjgaofjehylmglt","eqzbyxaqlps","eqzbyxaqlps","mymjhieyyrzwjtzdhngtjjzkfo","hlovkpdevdzafvqmwxfskmmgyxzddyc","eqzbyxaqlps","eqzbyxaqlps","fuyiwnqzbwawhmxdcahymvhmymvbkfupdxncoaycrg","iylfpzpudfbjknmkkroovclskzvp","eqzbyxaqlps","eqzbyxaqlps","eqzbyxaqlps","txnfnfoqpuxeruozrushmwfiuduopgyqqnwzgnddttkfgotg","eqzbyxaqlps"}

    "jqzbyeaalps"

    Returns: 3

  16. {"ksdfzxllsxjtcxhrdywtakpcfufbkequliopy","tvhgjmqgnkeoikgosacaafskangohujrthebmubdmz","uxwwgnxpomxvod","fvfbysbmuaffcyzzobyxmerabkeufwmpyoofxkaoskbvah","rpnitpfkbefaooghyophnjtbebkeccvztonfrnsasd","arklzmcdglahhvlesfaiyighz","bpk","pokwtktpkszyonshfjgizvrvorkcmykmtkvlxkcbkdu","oetmzbfjonqqyxubzxbbtstsqjzapimflid","clhmfdsgkugeywajmpxsoudsdroboicbb","aiavtqahhaledatoctdhciiojopqsbsfcevriq","oetmzbfjonqqyxubzxbbtstsqjzapimflid","oetmzbfjonqqyxubzxbbtstsqjzapimflid","vjhindrwepfhrgtbwokguukafuvueaebbxj","xtlakigirifqmfpmqcwbyhdtixsdlegtwudccjvlnciwpfhzl","lzaiaqqrsnqdxnbltrbmjggknwygedptstt"}

    "ontmzbfjonqqyxubzhbbtstsbjzapimflid"

    Returns: 3

  17. {"erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","pymwzcrrfgqnhsybmnscpalrmg","vdzucacfdlflvijwttrlqzg","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","wnulfrqqvsenurhffgdfqudlvrkwwoxvzsiytbzveal","erivkfvvdlqxxhesqvesjnoy","ncijmdgiapistpgxme","ieimgnkmmpkgeqisieagmiipqtrpagihpilefpbvbrusqjec","erivkfvvdlqxxhesqvesjnoy","sdfevnqzhppfdipwqwkimuozhe","erivkfvvdlqxxhesqvesjnoy","fwqyekphsyudapwfxcsfptswrviqgd","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","porylagbmjek","phumjyaezzidhjgzfzmrgvtba","erivkfvvdlqxxhesqvesjnoy","vmzriootabpoiudqzcgjrtguotm","erivkfvvdlqxxhesqvesjnoy","efesgyjhqmqwcgfcpchwhqioomihklpxy","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","ruwltknpxqaflnvmqfomsikonwa","vv","whqzxslfyjgqopbipbykomgujjiywkmubreyunxtfzqdmrvyl","kzxklkavqnkninwloxldnbdefov","erivkfvvdlqxxhesqvesjnoy","m","qguxzxjjrrdgbcyniaivsfwoxnyzbbznkoxqrgndtvnxs","hppveirqeljfzmzkiqrpwmehwbmebxrzwbgikfwqwtj","hlgbejnxfdzukhycwmohtjjxg","actbtdcsalvlaskuttclxcguujecsxciu","jkeejvrshnhlmwwzpqvusxwzgj","azcimqmjzqpjgtfvsnixhfthlnaumofxzwrtefvuznxjagpbnb","lxmrugu","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","erivkfvvdlqxxhesqvesjnoy","sbxyuikpax","erivkfvvdlqxxhesqvesjnoy","emuqlwjzdcjnbehdpsbsfgh"}

    "krivkfvvdlqxyhespvesjnoy"

    Returns: 3

  18. {"defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","vueholzqetcjds","wcjfjyngmubtawklylbloimbrdlylnv","oxsbtzehhosmnrztuhexbgbnphnfnpuyzhfceisy","tdzqaoaeredjx","hwellmzusutnglxplpfrhdbxptnbwkqpboyf","defxfelxamlgbjxssbqqpuaforev","dulsannjcccsaqapldfkwclxfshzecpasqntfxoufa","puiduyejoxaz","jnm","defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","defxfelxamlgbjxssbqqpuaforev","csqvxfxfcykx","kzkpjdfrufwrkfwqzpttlmzggubqtaskezwuqdswjoi","defxfelxamlgbjxssbqqpuaforev","wxwkxelmcibqdyjtbpztnudvupoahrbrxpfkutmtorfgzyvvcs","defxfelxamlgbjxssbqqpuaforev","fvowwwutxogf","defxfelxamlgbjxssbqqpuaforev","ctddqnxfsnvnpebbekojfexccjuwhrnruudlflmq"}

    "dwfxfelxamlgbjpssbqspuaforev"

    Returns: 3

  19. {"aaesvbpwsyxqrtgummeyuqqcaefpeleyspkqdwbojqixqdx"}

    "hs"

    Returns: -1

  20. {"gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","mjxh","gevncejjbsqwzshxzyciqqplqpehsm","ddonijbryi","zjjumohhzjqfhjwukjnejixwzgrflsdifwf","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","pexvzubcgbveejcsfkiagkkyx","zsnxdnvamfeenyuyovfijirixwligftzy","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","fkadikiqgv","gevncejjbsqwzshxzyciqqplqpehsm","lvw","zveadyxhrexvj","ziuhzuokwzxczdiekntek","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","spyf","bytzmt","gevncejjbsqwzshxzyciqqplqpehsm","rrlvchcpczjsqui","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","lkfaemfqxsvugrafuzdgqxhsefpejuwgny","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","swxxzbgbjzhcintwqgpowpkxwzxsxdacpwvkkjxplyogvpuckf","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","gevncejjbsqwzshxzyciqqplqpehsm","dbg","visbgnptsz","ixlyuihrcjlbtulpxfb","yuviflesqxsyjbz","oedtvkevjgyguysnqrknbcs","gevncejjbsqwzshxzyciqqplqpehsm","y","mxxsffhsqlkmlupgjzfxphlvyzkhfwxbdtvfrizlezakpogi"}

    "gnvncejjbsqwzshtzyciqqplqpehsm"

    Returns: 2

  21. {"qtpotqemfwhgpjjqdqai","eaxqg","eaxqg","eaxqg"}

    "oarhg"

    Returns: 3

  22. {"mhfkszmysfemjvhoinnqsfooag","finkpfczmtvqzoxjor","ex","ex","suuuyrhjebczdasbtet","sguljxtdrsbgjjbiqjkqaupbcir","mcdiflrmzjkbxdslzvptzjkjtcnxqtjafyqoosbyr","ex","rckbdljiqvmrchhdnwudyaytchoovjyhulbvlcoif","hxjoxcnvahbewrdqyvwvngxfxrgmslhmxesakn","laajrfqpjsudslkgbad","gwbcpzpgrycgkmlvnxgahcwtxhoamyrag","cpyxurpjxlpnsgaosdudkezhfhlpushcanjvxqcolxel","koizxgnfd","ypqsmfzpedmmewfrcafrmzodu","dqwmtxxblfgxqjlhzhrxjltfdmzlaybnxtcjt","kppdlzlekwgeahlxjrwqjgxlbmetawgcohw","hgzt","ex","ex","jrlhskhyzyywm","zfcuodtramysesqqgfahzao","ceeaskeh","mdolsmbnsryjagohjstwemyqyrk","syphqespcensyuhjpucyqtjrlljaexnaccutbrswnyeeeaxke","bdpliypxvfvslernqwzniycgkrpenl","yvowjlqtvedwnavnanrjalqhdbja","ex","tsmwdzrsfpjxhgcbmelnuuph","krpozak","ex","ptbpmwlgtqfyervxeorydfst"}

    "in"

    Returns: 2

  23. {"ecvayjinnesxxecgqarikah","msk","xhatunpedrttpkwqbhxxgcotutstndfc","ecvayjinnesxxecgqarikah","ecvayjinnesxxecgqarikah","fgdhwtqqfimqhgx","vkjqbkbnijatwdsnhmiruxeoezjfltquhcqhyj","ecvayjinnesxxecgqarikah","fzyfulcbwbosgltnlpxgomeyrvhehonlvwcdsbdxetjnku","lboeikojsuaozexthodwjjpvj","zcvcqnwivdtkfahnjjrmdtg","ecvayjinnesxxecgqarikah","ecvayjinnesxxecgqarikah","ecvayjinnesxxecgqarikah","qspmgskob"}

    "tcvayjinneskxecglarikah"

    Returns: 3

  24. {"mkrtlehesyccvlzxprmlveswuiivtlfbnxo","qhcrobizzsaxxxlkemvisuzcvlkhtap","xjghovwuvsxcikywzuxabfxwizvdqagzcbanqevipbnzxwuk","ohycoxrmkzpatdumyzhklfvz","lzsyylekrcthwodibgefhwysmzxnaa","lzmdyyomnlqbbbfbldc","ex","ruruxqhymkxpkugeoxycmyugkityraysxfzyqtd","ex","ex","ex","neweckackjnkbtjakzidudhgpjtjepveypehyctoefeawad","trvseydkwpotrqyuoim","obciftypygkpfjqmuczzluki","axohjmooquronmlzolpfznizlal","maurtufwkipuwaooz","gpozxivcompovjbfcqaavthopfwvjzytantvtmcmwqgshvm","sqxyoycnizks","ex","fbkgmtckawxqemiermfhkauyausqzvwanopmxitrodnhhvkvlo","qntpfhmfsbllezwdpwwgisnthmmrejxekwgnuzkfldaqcrihk","vzpirxazhsuuaiegbitjiplrueswrqdfgloyp","ex","sskqcsmvpanakfnyomfdiropooufraclxoxtgdbz","vadrfbjkqmsciladvcox","epxcdvhtslkft","qlxinlvankiocwqkancdqkfobf","ex","xpyksxuamldcnupt","dikwdpwgfjghjdclclyemx","gmpsnirummqnqrkuzbemootd","aqkjqpyfveknwix","ouvtqmurrycilxstmlmsglvwrhum","ex","gyztyjrovtrsnquxmqblwehdzycirhqkvjbmy","uduywntdjanwakerwbrwuagiwnchwephznvyryitkvocvug","femzvcduwlbil","gflfxnogaytxlylenbhvbsrp","xjacgwzixpjqpxtszenfyqfj","xzbplonvtadneucupojcnxendboejngerk","wxtmavvwwqeuklli","vgdzv","ljajmftyvtlfxwbjhsbhwyhdsyfe","kgibihdzliqcsiaygnm","mz","ynrncwqnapolmddopxjvjl"}

    "bq"

    Returns: 2

  25. {"leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","bbgucmrslfegtsmlwswwltzrv","xmppuvjxjtuaeifmsqbf","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","cmsakvesi","q","yusmobh","zhfrocxwoszhbmtbvqpeexinhmbewiqutxfuhb","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","agcfndhytufhgwttmxlpdfrthqicvprjgfhxn","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","uuowbxqxdwwpkyvpajbazwitmmyqa","dvczzdqikfvdogoxrqgrwpjgpymvjpyzxftbmlyszrzvevh","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","ibnlwjbqvzvgwgjmnlgsn","eqobuqkqtuqpodfppbwbdsdpioyprenpwqww","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","jvgfzazjgrtfvbapdiedqyiaoimywiaxnuondhctjfbyooriai","sptjkngrqobny","wsbnmmwgkukwklardxocihukdaxqlfis","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","leknrtbcuuqndxnuczxccdbxjmxwredqmrzrtpxvwhaov","lcqgdyhlofbiftxboqtjneopvtoouxkqeijxketdnvpfluz","qlsq"}

    "lvknrtbcuuqndxnuczxccdbmjmxwredhmrzrtpxvwhaov"

    Returns: 3

  26. {"abssexkpxthmbkwzirhpmwcnrzdjrujovzzffje","juvaxliquciymshezeaftay","ksqckru","mwgsbbqgqnpollbcsvgajysivsqeuffdiklqmpcxouoglkrz","nkoltpodywjkllkhmgbzkqdtimojmxlarn","vrsouxnnstncid","ydpzgwgvchberakityepqushcxckzvjggnyhlrhkowpgtsv","hltedoielhwitwvhxvydbdwcru","u","lojbpcnbfc","fuveuyqsaijyusleprmionzasmgetifrsg","hhshseiuwcqpidyykstdrvvlhrmyrcrfovewwjtegtcycx","avjvyydflmgzbsjcuklbnzbbaypwysxjktlcigsgkpskqk","mwrhnrwkbuhvzjghtpxphghtnreqxgqlpgca","kjsojkhaltwdi","vsvkfoxuvmfmvdwfthfaiffbywztcyhmpgvtuvwliqnfixpeef","pxhrpntmjperxeswoickxkursrzsbgvpwysoipfgbjnweyqaqa"}

    "wspjeatmyjetagxbjitktuexkarcrpu"

    Returns: -1

  27. {}

    "bvcfdpzynakcuovymdoycwjowymtbycafyobwmlsqhs"

    Returns: -1

  28. {}

    "bqdsnmmbteloifcfwoykwv"

    Returns: -1

  29. {"jplwwpik","oefkpidfqkkeboofqkqnurtyacyxifqn","sri","sri","u","vpafxqhlvoavxzrzlvglzhjgsjqovenznjb","sri","olpsjrmgfkhbui","ngunoasqraainyqtmazxnsqwawjjkwmfernu","mggvuysijziprvaukeuqxmr","sri","loddmfcytjwgbilaskuupqmucljjrrt","f","sri","ajefil","smd","uzvbjbbwth","pvays","jxiiamqdpxdxi","epuldvdhsaobvxuiejtvjouwunfytexzkixzapvxcbeityrs","hsuenpquyrqpfoocp","nauhpowshjmcvvnpmlduxshecyehxnqge","sri","sri","qfrjouutfynsucmixlckbvfckehkngjoizxu","sri","sri","sri","sri","asvotjzegsnpguzgc","ywmugldeejjgvbgzhtkljshroviunmhtdgxbwfm","lpeqvzxljgmgwqlfovf","diqscpcoeedbgbatnrwoy","lgzbxmvrmazbgdzmofxiheckzuqrrxyrmgwjsbrqtmrc","euwub","sri","sri","sri","pnzlyjjzofeethefpuyt","wsm","sri"}

    "asvi"

    Returns: 4

  30. {"jplgootljclzjobihllbfqmlkykfsmxvxnfaujxzvbsfipcaa","nevkttdawpenswfpcvjbnxnmfexgcuv","fczsanumwtmiviiwasnhr","cprjeovwybttiqxmppbwftkfrxwbgjhotgajbqifrzvlobzs","ocxfutielrhstqoueacqokyhwffyzqqxddshjjymrepzbmx","grjaxcjddqjpokfubj","pyhkvbpyjuzfjhwrigpzbtodsajxg","vxrxikzgoyhdaiekzhstwoljnvjervssrjzbolzmsbsqsytgzh","bf","dglhkmavotgplqicwoigbuvvroc","svfzlziqhodinpqgqmyrmciupmocyuqh","phanlwmykdmcywlmtzmilqpwjwqezpchkpmon","ueiwlobafiyhxnryhzredoghzuafrikxzyfiaofau","rhgrsppmhnwirfxaxq","wiwxbiyhjyttrkuxybiclqfawaqh","kzrpmyaujfithgnotfywiyzondgcwbasrhyyceemucovaidjsm","uslrlac","jrx","ieqczipmpblbfkdoezwkjxgzgpmxzduuxdfqjgebczotgjmb","owkvmolyqvjvrmlgrebeneyuuhkjmtwdkalgkykpurslv","kncmofkxkjyp","ee"}

    "ssvfzlziqhodinpqgqmopmciupmocyuqh"

    Returns: 5

  31. {"flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","bpcxwyzhkfrewkckbszzvyw","qyqvnwhxkzitgiy","c","myvtgoqsckxspcsuhxhduoyttwcjettyxzlxmwsceutx","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","xjsssgzwnwkwiqxfjgcxuofd","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","bwsztkwbxkbyjsikaakgfczyxjrgsu","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","loluzzvnrogxwpff","paloohrygpeuzqhrbniihltvvlqphhnbejlqutxg","vsjqssxyfucxxmdgptdrbrzbdppfrxiqbnmsjeds","qbnldhxhjeaupsetinccshimlvjakxlqkykq","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","wmtkkqinhsotkuzoeqjorlvtpuybwlqrkuavzxlvmurjd","efkewjyiflrzvp","grwbwiqtdphfobxtlqiptrsohscppeabvdf","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","hk","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","flrbewstmjvlmzpwwhzersmqbyryfktfvmputlxqwlyo","fplrirmaecqikj"}

    "yflrbewstmjvlmzpwwhzersmqbiuyfktfvmputlxqwlyo"

    Returns: 5

  32. {"suuggwamraxwz","tdvyp"}

    "jplmqatrjkczbb"

    Returns: 16

  33. {"exdqznfgsvdgerwuiddzaahbkqypmedsufzei","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","wjklxsdqb","joquorlmysrl","vhgxckt","ltlpushxnvogyyhcjjfwlfmmkg","dqubfisxveeuzdolwdfexzeosfxcgg","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","pqoduomsjebbjsjq","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","rqxqlfkcmrmyfmsrmjawo","javwspnffpgekddfiwtsshdveb","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","ncwdgwvpmvpgmwracpnh","dcv","cwzrromwuceigwgjsjydlvhdeykmcijzaieawyugc","runrvthxiuesjgpwmtdz","lsfhysgntorabdmqncrfeaovizxlambccqgbij","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","qibuxykyfgxhtytxgqxwkv","uavbhhbmsvbxojcnktglyweojytnrx","avtgubwcqetflsaeoddndekryvhrjonu","ebcvcimnqpgerswjufjojnvkciyuescqzjgqyilur","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","rkzqocohzrexeophbqykdsqhnusclj","udvbeytmesiccfyyfxlwymwmztrdtkmwqvktimkjheus","pncpwmfzmyhhjckgpsufmmhueqsmcptsdrjgooxx","wdwdmykacsmzm","dfhkfttxxfoerses","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","ilrsrimzwgsqjgbgdrdnzgrohhrwkqs","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","gopdrlgqkdsgbgtsuyftztpkbbtbn","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","kaiajqrlzcqxiq","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo","tnwy","rmewmr","ltnbqctwwsmyofxgzkdwxtwvhpntrirqenoiraforufa","iwkpnlxdvzfeknxlramozvqdwshqrdclvhjxkqsldjwarsoo"}

    "ziwkpnlxdvzfeknxlramozvqdwshqydclvhjxkqsldjwarsoo"

    Returns: 4

  34. {"awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","mrpcprnfttsmixenbotkticbrwuhl","hnmcaawnssuowttvmyec","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","xveonlsxfujmeagwernvaqeljivkwdik","xogvliczuounhovgbzkmmphrtffpibclznhlzatjlvgbjybt","d","dyxligocfcmrtlinuhjgbgbbrjfhuempegynbbzf","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","wqgkxazhmbregaedqmqaszcgy","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","hquxezgywwwiacxtx","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","nlpn","whqduicvmzekxzzfpvvs","pjp","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","fwyptvihxbskqojnhapgdnpnpyfkjbtlqvjpbcjzhoooj","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","bsiqdo","jrsgdblumfwdupfsfgfc","vfvjertmlvbcfowgu","tg","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","i","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","gsvsyrj","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","tdxmjghshxtgewopntlqbwekn","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","xznybmvvxvhbfochcyawmq","ywpladsdidnkmumtyxuiqdqnuhnpaceyggpbl","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","szxrdqmpfc","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea","awubqpozfpednwujfqzldfhjnwlzrfzqpradeigeregsqwea"}

    "oawubqpozfpednwujfqzldfhjnwlzgfzqpradeigeregsqwea"

    Returns: 4

  35. {"rrtescegmgfl","cdrjdqmywcreaqbxmuggrvkjsyvtrmypulyjnmkxmhuoczrmci","m","eigtirfvshkdbkprrkzjiujbvgsgirjmmqpcsqevfctajkbpb","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","emtcwgqsdk","ruoujqwyjkpnmxwtxumnijqinidixqhfgrniqu","upkquoygfansxqxkieghannbtckgvkncdxryysvtobyikx","ojgedknwhbjxrerlumk","azzmpimszofqvtvxofjspajwpvepwq","vzijokup","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","byoimboochdyoyewabzzyrtqvqjdahevv","swphovfrcupqejfmygyvskexmvrlnvchcqghhsmduhozbfl","x","jxxafirrvtdudhshnodxfguualv","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","tctzrghhefgjuctyozxdcordmowy","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","mckitizalqecytovlwvjrynhyawsntss","jhhsimkilck","ypgzxtpkcyopckslhmsxm","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","zozhwusmqlcrejnctwdsmtxpzjxaevfdcndydlvanklretj","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","fqkhmwshvgyprfpzibdfci","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","hsdidudqlfesxykeaznixlabmbgmmcyeohhhfszkzstfchx","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","vglodwxvjolyddh","hfvbujwfxdqxwnwjkrikfovkchaqgwvbwuvcevnljgrag","zvscnlvxrtjkymigzbhoabsuepdwazxvecifxdijgzdcstwacd","psrzxdyxyhzwsw","gwedivsxiaypbksdtxshdmdkbzg","bgckgenavzulxujyznwmf","fzaoktsub","ohwbyojxxshucgjide","dusivpaqxpeugtokvvimjlrociiuyrnbdwqxxxyfvfkbnewno","zpnwkxtf","pojnf","cyavesdckhxqjtjwezkderaqfpmretqkgbmzgfhlw"}

    "odusivpaqxpeugtokvvimjlrociiufxnbdwqxxxyfvfkbnewno"

    Returns: 5

  36. {"nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","twddlcddwqizoeimeppakzxbdpupeyakbtjyvsafmejwehvbx","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","gntoeutidxeebnweyirfqelytjlqzeurmumezjdlyvmboodkbb","yoeicbvvujdjydmrgasepeggvr","jegaoxrvcilkceoicvlo","bwxjjwyuixnkrmqoipmhhkjuqpaavdljdmhiiqfatbukya","ryutgzgprmctuwxyemdgefh","rjlogpzvpdj","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","pvfxlevdqxuuhmqobwnsjcnhdqmvwthtjhpmzuyhsdybb","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","ceaaeprwclajwahxblqeijvslacrwlregguzog","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp","nkigjpzszhsolczfayljghdkbbwqyrkolzawceidksduywmhp"}

    "qnkigjpzszhsolczfayljghdkbbwqtfkolzawceidksduywmhp"

    Returns: 5

  37. { }

    "foo"

    Returns: -1

  38. {"topcoder", "topcod" }

    "topcode"

    Returns: 2

  39. {"aabbb" }

    "aa"

    Returns: -1

  40. {"topcoder", "topco" }

    "topc"

    Returns: 2

  41. {"abc" }

    "def"

    Returns: 3

  42. {"abcdef", "abcdefghi" }

    "abcef"

    Returns: 2

  43. {"abcdef", "abcdefg" }

    "abcef"

    Returns: 2

  44. {"topcoder", "topcod" }

    "opcode"

    Returns: 6

  45. {"banana" }

    "bnbna"

    Returns: 3

  46. {"aaaaaa", "cccccc" }

    "bbbbbb"

    Returns: 6

  47. {"topcoder" }

    "opcoder"

    Returns: 2

  48. {"haahhahahhaa" }

    "hhahahh"

    Returns: -1

  49. {"topcoder" }

    "topcode"

    Returns: 2

  50. {"aaaaa" }

    "bbbbb"

    Returns: 5

  51. {"aaaaaaaa" }

    "bbbbbbbb"

    Returns: 8

  52. {"asdf" }

    "adx"

    Returns: 3

  53. {"topcoder" }

    "topcoder"

    Returns: 0

  54. {"topcoderererer", "one" }

    "libor"

    Returns: -1

  55. {"xabc" }

    "abc"

    Returns: 2

  56. {"to" }

    "top"

    Returns: 3

  57. {"lalalala", "onetwothree" }

    "samantha"

    Returns: 5

  58. {"topcoder" }

    "topcodex"

    Returns: 1

  59. {"asdf" }

    "asx"

    Returns: 3

  60. {"topcoder" }

    "tppcoderr"

    Returns: 4

  61. {"topcoder" }

    "abcdefg"

    Returns: 8

  62. {"aaa" }

    "a"

    Returns: -1

  63. {"hahhahaahaaahhaaa" }

    "hahhahaahaaa"

    Returns: -1

  64. {"topcat", "sfgadfgadfgk" }

    "toofat"

    Returns: 2

  65. {"stunts", "stab" }

    "aunt"

    Returns: 4

  66. {"abcdf" }

    "zzzz"

    Returns: 6

  67. {"a" }

    "ab"

    Returns: 3

  68. {"topcoder" }

    "topcodxx"

    Returns: 2

  69. {"toocodes" }

    "topcode"

    Returns: 3

  70. {"dffffffff" }

    "xxxxxxx"

    Returns: -1

  71. {"lalalalal", "onetwothree" }

    "barclays"

    Returns: 7

  72. {"abcdef" }

    "abdef"

    Returns: 2

  73. { }

    "a"

    Returns: -1

  74. {"aa" }

    "aaa"

    Returns: 3

  75. {"topcode" }

    "toocodes"

    Returns: 4

  76. {"ba" }

    "a"

    Returns: 2

  77. { }

    "ab"

    Returns: -1

  78. {"abc" }

    "ac"

    Returns: 2

  79. {"abcdef" }

    "xyzjkl"

    Returns: 6

  80. {"za" }

    "z"

    Returns: 2

  81. {"abcd", "a" }

    "ab"

    Returns: 3


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: