Problem Statement
Two words are said to be anagrams if one word can be formed by rearranging the letters of the other word. For example, "AABC" and "CABA" are anagrams.
You will be given two
Definition
- Class:
- AnagramCompletion
- Method:
- complete
- Parameters:
- String, String
- Returns:
- String[]
- Method signature:
- String[] complete(String word1, String word2)
- (be sure your method is public)
Constraints
- word1 will contain between 1 and 50 characters, inclusive.
- word2 will contain the same number of characters as word1.
- word1 and word2 will contain only uppercase letters ('A'-'Z') and '.' characters.
- There will be at least one '.' in at least one of the two words.
Examples
"AB.AC."
"ABD..E"
Returns: {"ABDACE", "ABDACE" }
The letters 'D' and 'E' appear in the second word but not in the first one, so we place them in the two empty spots. Similarly the letter 'C' must be present in the second word. The letter 'A' must appear a second time in the second word. Ties are broken alphabetically.
"ABC..."
"DEF..."
Returns: {"ABCDEF", "DEFABC" }
"......"
"......"
Returns: {"AAAAAA", "AAAAAA" }
All the letters are missing, so we can replace them all with the letter 'A'.
"TOPCODER"
"D.E..TR."
Returns: {"TOPCODER", "DCEOOTRP" }
"ABC."
"DEF."
Returns: { }
Each word is missing three letters from the other word, but there is only one empty spot in each of them.
"O"
"."
Returns: {"O", "O" }
"AB"
".."
Returns: {"AB", "AB" }
".S."
".HS"
Returns: {"ASH", "AHS" }
"P..W"
"P..Z"
Returns: {"PAZW", "PAWZ" }
"WP.PH"
"H..PT"
Returns: {"WPTPH", "HPWPT" }
".LSZ.Y"
".SJZ.."
Returns: {"ALSZJY", "ASJZLY" }
"P..C.Q."
".P..JNO"
Returns: {"PAJCNQO", "APCQJNO" }
".SR.H.KT"
"OJKUT..R"
Returns: {"JSROHUKT", "OJKUTHSR" }
"..N..IEC."
"MECBN..IE"
Returns: {"AANBEIECM", "MECBNAAIE" }
"..PJP...VM"
"..MN..V.JH"
Returns: {"AAPJPAHNVM", "AAMNAPVPJH" }
".BAT.EYHCJ."
"CE.B....T.J"
Returns: {"ABATAEYHCJA", "CEABAAAHTYJ" }
"..LKO.P.D.L."
".EF.L.O.KX.."
Returns: {"AALKOAPEDFLX", "AEFALAODKXLP" }
"RAY..NB..L.F."
".YGE.RO.F.ZNE"
Returns: {"RAYAENBEGLOFZ", "AYGEAROBFLZNE" }
"FO.UZJ.GWTQ.Z."
".T.Z..JOJ..Q.Z"
Returns: {"FOAUZJAGWTQAZJ", "ATAZAFJOJGUQWZ" }
".NTSL.D.BTDCT.."
".F.O.S..TLC.C.D"
Returns: {"ANTSLADCBTDCTFO", "AFAOBSDNTLCTCTD" }
"...C...DXBK.XU.."
"D..UG.EDXD.AYX.P"
Returns: {"AAACDDEDXBKGXUPY", "DAAUGBEDXDCAYXKP" }
"..RX......KE..Q.."
"..QFK..UTXOJ....."
Returns: {"AARXAAAAAFKEJOQTU", "AAQFKAAUTXOJAAAER" }
"FNT..PGOL...D....K"
".T.......LLK...UVR"
Returns: {"FNTAAPGOLAAADLRUVK", "ATAAAADFGLLKNOPUVR" }
".VQGVR.XP.DZJEFC.EW"
".VCJ..V..Q.G.RCVV.."
Returns: {"AVQGVRCXPVDZJEFCVEW", "AVCJDEVEFQPGWRCVVXZ" }
".E....IOB.IAWJY.NNXI"
"I.X.DNHMJNB.E..PI.AO"
Returns: {"AEAADHIOBMIAWJYPNNXI", "IAXADNHMJNBAEIWPIYAO" }
".BEA..MXJOC..K.GIAWHJ"
".S.V.BTE.M..H.IGP..A."
Returns: {"ABEAAPMXJOCSTKVGIAWHJ", "ASAVABTECMJJHKIGPOWAX" }
"..LLLOHBHKI.Y..R.HNOF."
"LRI.BLHONYT..HL..FCV.H"
Returns: {"AALLLOHBHKIAYACRTHNOFV", "LRIABLHONYTAAHLAKFCVOH" }
"CHGM.LV.HR..X.MRLZ..PZ."
"WRCCER.J....GL.MLHZ..F."
Returns: {"CHGMALVAHRACXEMRLZFJPZW", "WRCCERAJAAHMGLPMLHZVXFZ" }
"D..XB...OZW..I..BG.RU..I"
"B..D.BBB..RSRDW........Z"
Returns: {"DAAXBAAAOZWAAIBBBGDRURSI", "BAADABBBAARSRDWAAGIIOUXZ" }
"C.VC...MXMUOJ..BMJ.L..BC."
"FVC.CCOL.M..M..BUG.....X."
Returns: {"CAVCAAAMXMUOJAABMJALAFBCG", "FVCACCOLAMAAMAABUGAABJJXM" }
"XCD.P.FJCTR..ZICAEAYTO.KH."
".YC.R.XYCT.IKAR..A.......O"
Returns: {"XCDAPAFJCTRAAZICAEAYTORKHY", "AYCARAXYCTAIKARCDAEFHJPTZO" }
"M...A..LSPFKREZNS..H.TX.N.."
"MMP.T...XFPK.N..L..K.B...H."
Returns: {"MAAAAAALSPFKREZNSAAHBTXKNMP", "MMPATAAAXFPKANAALAEKNBRSSHZ" }
"Z.UKX.I...ZYFRW...C.WB.L.Q.X"
"....A.I.Z.B.C.XL.J..FU......"
Returns: {"ZAUKXAIAAAZYFRWAAACAWBALAQJX", "AAAAAAIAZABACAXLAJKQFURWWXYZ" }
"AT.G.E..NGUHT.C...W.F...L...."
".E.A...TGOU.Q..N..ZL..T.B..HS"
Returns: {"ATAGAEAANGUHTACAAAWAFAABLOQSZ", "AEAAAAATGOUAQAANAAZLACTFBGWHS" }
"TEFAT..PVSKKJT.QBJEB..NPN..NBL"
"...B...E.ND.LNE...HW.ANTB.TKBD"
Returns: {"TEFATAAPVSKKJTAQBJEBDDNPNHWNBL", "AAABFJJEKNDPLNEPQSHWTANTBVTKBD" }
".E.HI.VCFK.Y.TGZX.GFQ.BK...J..R"
"FH.....FY.....RT....XR.BEIJ.B.."
Returns: {"AEAHIAVCFKAYATGZXAGFQABKAAAJBRR", "FHAAAAAFYAAAAARTCGGKXRKBEIJQBVZ" }
"...YBDAX.XT.YHMEY..F.Q.O.....R.."
"EK...WY....J.T.BF..QG...A.YHD..."
Returns: {"AAAYBDAXAXTAYHMEYAAFAQAOAAAGJRKW", "EKAAAWYAAAAJATABFAAQGAMOARYHDXXY" }
"B..YV..JJFS..AESDT......TBD.VI.WB"
"..J.DQV..CFAN.JBO.....TTSDEVSBYI."
Returns: {"BAAYVAAJJFSAAAESDTAAAACNTBDOVIQWB", "AAJADQVAACFANAJBOAAAABTTSDEVSBYIW" }
"Y.MYNT......A..B.SF.W.J..QM....BV."
"...QWJKVQ...YP....X.FKR......BU.GO"
Returns: {"YAMYNTAAAAAAAAABASFGWKJKOQMPQRUBVX", "AAAQWJKVQAAAYPAAAAXAFKRBMMNSTBUYGO" }
"EIUH...D..Y.S.M.....E.Q.D....TJTRQ."
"MEUH.E.TDN.O.JU...RY.G.X..S.DE..VNI"
Returns: {"EIUHAAADAAYASAMAAAAEEGQNDNOUVTJTRQX", "MEUHAEATDNAOAJUAAARYAGAXAASQDEQTVNI" }
"M.MG.B......JWPPPL.DLC.BHI..P.XE...N"
"P..L..WMGK...PP.Z..CIZ.BL.X..D.UVME."
Returns: {"MAMGABAAAAAAJWPPPLADLCABHIAKPUXEVZZN", "PAALAAWMGKAAAPPAZAACIZABLBXHJDNUVMEP" }
"X.WDR..JAC..AM.V...M..ZJ.MJSLJAJN..YT"
".LXJJLD.VAAJD..Z.E.JXWMJMJ.CQ.V.A.TX."
Returns: {"XAWDRAAJACAAAMAVDEJMLQZJVMJSLJAJNXXYT", "ALXJJLDAVAAJDAAZAEAJXWMJMJMCQNVRASTXY" }
"SCAFGE.K.CG...GN..Q...XGLDSI..VDV....L"
".V.CF.Y.L.U....G.CMCNVE.GO.I...DD.PK.."
Returns: {"SCAFGEAKACGAAAGNAAQAAAXGLDSICMVDVOPUYL", "AVACFAYALAUAAAAGACMCNVEAGOGIGLQDDSPKSX" }
"...UF.E.K....W.YL.....EVI.HS...ZIYHLM.I"
"MAE.SQ..M.G.B..D..Y.YESBL.HCL..DG.I...U"
Returns: {"AAAUFAEAKAAAAWAYLBBCDDEVIGHSGMQZIYHLMSI", "MAEASQAAMAGABAADAAYFYESBLHHCLIIDGKIVWZU" }
"...V.S..OHHMUE..NWZJ..AP.W..PVR.O.C....."
"ZGR..OUUS..JZ.VE..DT..WVP...NC.........B"
Returns: {"AAAVASAAOHHMUEAANWZJAAAPAWAAPVRAOBCDGTUZ", "ZGRAAOUUSAAJZAVEAADTAAWVPAAANCAAAHHMOPWB" }
"V.CWJU..P.R.Z.NDAUX...HYC..NERF.D...STBY."
".....DN..R.W.IULVB..BA.BN..HJE.T.DQXE..RL"
Returns: {"VACWJUAAPARAZANDAUXAAAHYCBBNERFEDILLSTBYQ", "AAAAADNAARAWAIULVBCCBAFBNPSHJEUTYDQXEYZRL" }
"E....W.HV.DWZVCUXF....SIO..MS.EJ.O.UHYJONA"
".VU.J...G.M.AEN.OZZ.H.YUSR.WO.FGCBC.VIEH.F"
Returns: {"EAAAAWAHVADWZVCUXFAABCSIOFGMSGEJROZUHYJONA", "AVUAJAAAGAMAAENAOZZDHJYUSROWOSFGCBCWVIEHXF" }
"X.K.J.IQ.V..CMI.J.GC.KTR..J.EMX...HN..GXD.."
"IL.C.ZV..O.G.O...EJNHCRM...GE......XJITZ..."
Returns: {"XAKAJAIQAVAACMIAJAGCAKTRAAJAEMXAELHNOOGXDZZ", "ILACAZVAAOAGAOAAAEJNHCRMAAAGEADJKKMXJITZQXX" }
"..MIAMC.FH..F..G.R.DN.ZTYTJYV.VW.RUNWPKMAD.T"
".H..MJP.YWF.SMIV.O..TW...FR.A..MX.....VH.S.."
Returns: {"AAMIAMCAFHAAFAAGARHDNOZTYTJYVSVWSRUNWPKMADXT", "AHAAMJPAYWFASMIVAOAATWACDFRDAGKMXNNRTTVHUSYZ" }
"R..P.HRB.WT...PDK.RBPAYLP..NCND.....A.JY..TB."
".D.VSDB.UH....BJPTLVYTF.RH.WY.EW.R..EKBB.NQI."
Returns: {"RAAPAHRBAWTAAAPDKBRBPAYLPEENCNDFHIQSAUJYVVTBW", "ADAVSDBAUHAAAABJPTLVYTFARHAWYCEWNRPPEKBBPNQIR" }
"V.P.O..Z..OK.SNFFSMOKOSZM.R.NP...EZ..PW.PU...C"
".SK.F.NPL.CZ..RCSD..S.PS.....KCOPPA.OM..W.ZSO."
Returns: {"VAPAOAAZAAOKASNFFSMOKOSZMARANPAAAEZCCPWDPULSSC", "ASKAFANPLACZAARCSDAASAPSAAEFMKCOPPANOMOUWVZSOZ" }
".KVBTP..WD.WEA.LH.IRABFPSQE..GUD.DK..E.BR..XU.."
"ED..K.W.LD....KEG..RV...A.H.FRWMK...TU.HB.P.DJ."
Returns: {"AKVBTPAAWDAWEAALHAIRABFPSQEAAGUDADKAAEABRHJXUKM", "EDAAKAWALDAAAAKEGAARVAAAABHBFRWMKEIPTUQHBSPUDJX" }
"VI..E..Z..BNZRK.SW.BZMP.DPO.JS.J.Z.RWD.VX.Z...R."
".C.IHE.X.A..Z.......NMD.QKER.DEOES....BVZXJ.O..."
Returns: {"VIAAEAAZAABNZRKASWABZMPADPOAJSAJCZERWDEVXEZHOQRX", "ACAIHEAXAAAAZAAAABJPNMDPQKERRDEOESRSVWBVZXJWOZZZ" }
"...NCJ.ADG...OZ.PLV.TK.PH..FVC.B.X.QVDLO..JP..C.A"
".ECF.RO.ZQ...POJW..G..D.PXB.FVVHPNDA.ZKJKFAAZ..L."
Returns: {"AAANCJAADGAAAOZAPLVATKAPHAAFVCEBFXFQVDLOKRJPWZCZA", "AECFAROAZQAAAPOJWAAGAADAPXBCFVVHPNDACZKJKFAAZLTLV" }
"N.A..X..Y.Y..ES.TXB.ZAPY...LBRX.HIIYKF.OBL..D.R..S"
".SNJNY.ROP....P..EJ..XN.YHDBX...BYMLF..ONMTT...N.."
Returns: {"NAAAAXAAYAYAAESATXBJZAPYJMMLBRXNHIIYKFNOBLNNDORPTS", "ASNJNYAROPAAAAPAAEJAAXNAYHDBXBIIBYMLFKLONMTTRSXNYZ" }
".P..J...WAFPDXECLU...YSDV..JWOODH...ULPY.AH.Z.UEQX"
"....JDH.EMJ.V..PHQ.JOCXZ.A.U.DP.A..HU..VL.Y..F..DX"
Returns: {"APAAJAAAWAFPDXECLUAAAYSDVAAJWOODHAAHULPYJAHMZVUEQX", "AAAAJDHAEMJAVAAPHQAJOCXZAAAUADPAAELHUOPVLSYUWFWYDX" }
".XBJ...J..W.HU..A.MOZ..A...GD.AY.DJQ.CX..RSS.R...."
"..C...OXZ...MJDS.A...A.RC.RW.HDRA...DYCC..DCAL.Y.M"
Returns: {"AXBJAAAJAAWAHUAAAAMOZAAAAAAGDCAYCDJQCCXCDRSSDRLMRY", "AACAAAOXZAAAMJDSAAAAAAARCARWBHDRAGJJDYCCQSDCALUYXM" }
".C..QI.E.Z.MRLU...QT..XT.SGPN.G..IEIT.H.H....T...."
"........H.M......EC.TZQICUKQ.R.DZC.S.E.G.BQE..PYTH"
Returns: {"ACAAQIAEAZAMRLUAAAQTAAXTASGPNAGAAIEITAHBHCCDETKQYZ", "AAAAAAAAHAMAAAAAAECATZQICUKQGRIDZCISLENGTBQETXPYTH" }
".QA....ESOWNOS.G.AGW.EZ.UX.X....BKR.S....CQC.DLF.."
"LUONSDU...ASJ..SFWJCK.Z.CBG.M.K.OQ.AR.F...L.CY.SD."
Returns: {"AQAAAAAESOWNOSAGAAGWAEZAUXAXACDFBKRJSJKLMCQCSDLFUY", "LUONSDUAAAASJAASFWJCKAZACBGAMAKAOQAAREFEGQLWCYXSDX" }
".BSI.SRJ.JGV.YFAX.S.IB.U......A..A.WWPKRKKBFOFZ.EP"
"FNLRGVK.I.W.E...K..P.F.W.U...A.J.PU..X..SIYSI.A.K."
Returns: {"ABSIASRJAJGVAYFAXASAIBAUAAAAAAAILANWWPKRKKBFOFZUEP", "FNLRGVKAIAWAEAAAKAAPAFAWAUAAAABJBPUBFXJOSIYSIRASKZ" }
"...F....N.SAK...ZT.S...GJW.FO..A.J.FUB.MA.FI.G...."
"E.BGQ.U.H.X.A.MQ.K...W..J...WOJF.GFEFA.Z.NI.AKVI.B"
Returns: {"AAAFAAAANASAKAAAZTASAAAGJWAFOBEAEJHFUBIMAKFIQGQVWX", "EABGQAUAHAXAAAMQAKAAAWAAJAAAWOJFAGFEFAFZSNISAKVITB" }
".....ZKKPO.PLVZ.OFOZVUYASZBB.P.R..ZC.TFQ..FTKK...."
".SF.O.V.N.UZYSY.PS.T.N....P...T.OYLFQCAP.B......K."
Returns: {"AAAAAZKKPOAPLVZAOFOZVUYASZBBAPARAAZCATFQNNFTKKSSYY", "ASFAOAVANAUZYSYAPSATANAAAAPBFKTKOYLFQCAPKBORVZZZKZ" }
"DP.JFM......L..L.Q.WOF.W.V..BRJ.LPQFKA.O..AJA..E.."
"...JDZ..AFP.V.LE..JJ..Q.U.XJSLHQK.E.J..OO.V..ME..E"
Returns: {"DPAJFMAAAAAALAALAQAWOFAWEVEEBRJHLPQFKAJOJSAJAUVEXZ", "AAAJDZAAAFPAVALEAAJJAAQAUAXJSLHQKAEBJFFOOLVPRMEWWE" }
"..D..YJQ..QYKY....D.Z..LLZZA..CKM...X.ZTM.G..NB..."
"N..K...B..WKXLO...Z....OKZ.NCYZ.D.Y..YY..T.P.GIJP."
Returns: {"AADAAYJQAAQYKYAAAADAZAALLZZAAACKMAIKXNZTMOGOPNBPWY", "NAAKAAABAAWKXLOAAAZAAAAOKZANCYZADAYDLYYMMTQPQGIJPZ" }
".....E.G.TVZK...M.AU.I.U...J..CD.QFDASJIA.RU.BRIMJ"
"U.RFJZ....I....NR....B.C.V.I..DKTQD.HN.G..J..S...."
Returns: {"AAAAAEAGATVZKAAAMAAUAIAUAAAJAACDHQFDASJIANRUNBRIMJ", "UARFJZAAAAIAAAANRAAAABACAVAIAADKTQDAHNAGAEJIJSMMUU" }
"L.F"
"C.U"
Returns: { }
"GHT.N..D"
"TRPA.MQ."
Returns: { }
"S.M.I....TFY"
"EL.VJB..DT.B"
Returns: { }
"PYI.AC...J..J."
"KBZ..E..GRP.QN"
Returns: { }
"QVKS.GNT...L.CKRP"
"K.WA.GWHRBC.V.LXL"
Returns: { }
"OKHD.HS.Y.GKIVKCE.PXFT.."
"YVWMCNXHAY.OR.XG.E.QZMQ."
Returns: { }
"UX.KYCOUZN.PPNAVCJ.B.K..KU."
"DVHGB.AC.I.SDOTYSSMX.DHZUYX"
Returns: { }
"WGDL.NUT..UUWUXHSXK..YLC.CENG"
"IM.GQRLAO.JRI.NNXAX.XUEWP.K.U"
Returns: { }
"XQUM.NQSRMZ.QVYRVOKNMVWNNNNGB.FHVJ"
"RWTSYFN.Y.KELARSUIZPXIIAQZSW.S.H.S"
Returns: { }
"X.DWU.DS.IDECLYEQHZSFABENKCAVC.YWY.V.."
"F.UN.JZTGQX...O.TNT.AAV.PUJ.LBHSDVHRPT"
Returns: { }
"BUEUA.CN.PIOHPFXQ.BV.K..RLPXKOBPNUIMHNQOBL"
"ONP.CFP..JUTJSFDHSGDZCTU.AXDCAS.BF..H.YVV."
Returns: { }
".AQPNDHAFHPLTR.P.CCZ..CVTN.NOGXF.T.SQBSMPIQYKIKG"
"BZWJVD.VBKOVTQPMIIWOULMRXZW.JSKIS..UNY.S.N.XB.QW"
Returns: { }
"EDYBXTXZHNUXD.HLOIVOIR.YCGHRPHTZYMLRSDYSHBVGT.Z.KQ"
"FISNZHLWREDSAHGX.IDLQBT.NMYD.EWJE.LESVYAWEYQO.EBAA"
Returns: { }
"TU.GGLZI.YC..AVNLLIWSJ..VK.KQLN.RZPZOX..Q.K.OPKII."
"W....JVCVBKPZWAXURJ.IGPF.HHVGOQS.BAK.NVALGDJ.DAK.W"
Returns: { }
"ZKRE.M.H.XFXE.VV.WXNGRS..XA.WZDADUJTRZM.OXMYTZQNW."
"P..XJTLF.CQ.DQJVU..XPGX...ZYBIS.HWNRQA.RCYCFHTHTW."
Returns: { }
"TOPCODER"
"D.E..TR."
Returns: {"TOPCODER", "DCEOOTRP" }
"A."
"BB"
Returns: { }
"AAAAAAAAAAAAAAAAAAAAAAAAAA........................"
"BBBBBBBBBBBBBBBBBBBBBBBBBB........................"
Returns: { }
"A.."
"B.."
Returns: {"AAB", "BAA" }
"AHGK..SGC...EUID..XG"
"GKA.S.H.DE.UI.C.GX.."
Returns: {"AHGKAASGCAAAEUIDAAXG", "GKAASAHADEAUIACAGXAG" }
"."
"."
Returns: {"A", "A" }