Problem Statement
You love to sail and don't want to waste any of your free tickets. How many additional tickets would you have to buy so that your cruise can use all of your tickets?
Create a class MaxTrip that contains a method minBuy that is given
Definition
- Class:
- MaxTrip
- Method:
- minBuy
- Parameters:
- String, String
- Returns:
- int
- Method signature:
- int minBuy(String portA, String portB)
- (be sure your method is public)
Constraints
- portA will contain between 1 and 50 characters, inclusive.
- portB will contain the same number of characters as portA.
- portA and portB will contain only uppercase letters ('A'-'Z').
Examples
"AAX"
"CBY"
Returns: 1
You have 3 free tickets, one between A and C, one between A and B, and one between X and Y. You can use all of these tickets if you purchase one additional ticket. One way is to buy a ticket between C and X. Now your cruise could start at B, go from B to A using your 2nd free ticket, then from A to C using your first free ticket, then from C to X using your purchased ticket, and finally from X to Y using your 3rd free ticket.
"AAAAA"
"CBXYQ"
Returns: 2
One plan is to cruise from C to A to B to Q (using a purchased ticket) to A to X to A (using a purchased ticket) to Y.
"ABBBBC"
"BDDDCA"
Returns: 0
"ABBBBCC"
"BDDDCAB"
Returns: 0
"ABCDEFGHIJKLM"
"NOPQRSTUVWXYZ"
Returns: 12
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYY"
Returns: 0
"HGFDDX"
"BCQKXK"
Returns: 3
"AB"
"AB"
Returns: 1
Your 2 free tickets are circle cruises that end at the same port that they debark from. To use both of them, you will need to purchase a ticket that goes between A and B.
"ALKSJDLFKSJDHFGHRASDJFKDLSLALSLDLDLDLDLDLDLDLEISHJ"
"AAAAAAABBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCX"
Returns: 4
"ABCDEFGHIJKLMNOPQRSTUVWXYZZZZZZZZZZZZZZZZZZZZZZZZZ"
"ABCDEFGHIJKLMNOPQRSTUVWXYZZZZZZZZZZZZZZZZZZZZZZZZZ"
Returns: 25
"QWERTYUIOPASDFGHJKLZXCVBNM"
"QAZWSXEDCRFVTGBYHNUJMIKLOP"
Returns: 2
"QRWEQAFGSDAZXCVZTYUIOPGHJKLBNM"
"EWRQWADSFFSXCXCXIYOTUPLKGJGMBN"
Returns: 8
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"MNOPQRSTUVWXYZABCDEFGHIJKL"
Returns: 1
"ZYWXTSRQ"
"YZXWSTQR"
Returns: 3
"KLMN"
"KLMO"
Returns: 3
"KLMNQP"
"KLMONN"
Returns: 4
"KLMNAB"
"KLMOLA"
Returns: 3
"KLMNABNN"
"KLMOLAXZ"
Returns: 4
"KLMNABNNN"
"KLMOLAXZF"
Returns: 4
"AAAAAAAAAAZZZZZZZZZUV"
"BCDEFGHIMKLMNOPQRSTUV"
Returns: 10
"BUMNVXJBKSVHLCJUYHLWHHWWQQCRTVMGWZDLUOLGP"
"PSVKDJBQWLILMWTJLREOFQXECJQSFOOUZPGVUOQJM"
Returns: 5
"NHMLYTTWVFMSPLYOFCPPONRDLXUMJLGWANKUFQINPDKKROTE"
"INNFRPYMHQCYDQPBNTKPOPRZZRBFNYUYHHXHWGRHPTVLZLUY"
Returns: 5
"IAHWMFUOVNIPSWIPYDZGAJXAANNLWJTAXUEUFEXGXSRSABL"
"FPTORFHXQHNPLREXFDMDURFHPKFMQGETDUHXHIYZWLEBSVI"
Returns: 4
"GJKAOMMXXLPRGGUGEQIGKNYARQKHEQGLFPIJOYMPYMTQ"
"VDNSGSNRMFGYVITJAXUPYGPVONRBPMEYKTPIYXYTTWRM"
Returns: 6
"WCZSXTTXETTFAVVGJZCFHFALMRCXCQXLZFAGPUGKHBXNG"
"BOPDGTFRYKYANIPEKOXBQVLAXLHYXAWFKGWIAJODOXXNQ"
Returns: 6
"XCFFROKBFCLYLPCIFPBQZEGXIJRFLIDBCOPJZBSMOPGUGB"
"KRWHLSTBBORRYAQTDLVDOSUVZSRZFCIXCFPNXFOAKVZLDT"
Returns: 5
"RPIBGHLIHLTEWENMNDFMSYYUSIIIKBJRHTSJXCLNWESPF"
"JOXTBLXRMRQWNUEMPAMHSQNHOKQJDYSYCSPFBRTQTEABQ"
Returns: 6
"LKLWHBUNFEFKBKKBNVXBTUSSVRHLNCHZDJSCZWUKZZD"
"PZRPPITUZPVQPUKQDUMJHYUYOGYNPADWXZIIGJYFEAE"
Returns: 5
"PIDODEMIGXCWXYDSXZEGRUEYHJJWWHYPUUNTIEYYEXFHRD"
"TASXCBITDIRNAELJDIDTVQDZQFXXTMUKWATSBITMCFYXFM"
Returns: 5
"JJYMJZHOGKQQSZRCEUXZFGHUJWILCLQHCCENDRHIMR"
"ZBEDJRFARLKGVLRTESZOETIZNCQZFRLBNLCJTQTUGR"
Returns: 5
"DFAAFFABBCFBCCAFDAADFFBEFADDCBCACCEDBCDACBCEFBFFDE"
"FDEBADFEFACDAACFFAEEBECAFADAABCEDDCAFAEAEEBAFFFDED"
Returns: 0
"CDBEDAFDFECEBDFBDBBAEDFDCFFBDDEBCCEECEADC"
"BABAFADBCACEACAAAACCBABDABEEFCFBBACFDCAFF"
Returns: 1
"AEFAFADBCDDAEBEBAAECFDEBCFFCBCECFDFBECEFC"
"EBEBEBCBFBFCABEEBEDDACECADBFFECFBFCBDCCCF"
Returns: 1
"DCADDEDABEDACBEBDFFCDEBFDCABBCAFAEFBBDFEAD"
"BBDEBBFFCACFBFCDAEDCABBCCAFBFCEEDDACBBEAEC"
Returns: 0
"DDBDDCCEFECBABACDDAFFEBEFCCABDFEBBDABDDAFCDDCBCC"
"ADCADFCBCEFEADBEFDFCABDADAFCDBCEDAFCEFEEDEBFEBDE"
Returns: 1
"EFBDCFDBAEABFBECABAAADCBBDFBBAEBADCEEDBBCBC"
"CFFFBEDBEDFFECBCFCCEADCCACBCFFFCEBFABEEAADD"
Returns: 1
"ECADADCFCFEBACABEECBFEFBBFFDDEEEBCABBAFE"
"DEACBBEFABBCACAECCABAABBCDBBAAFABBFCECFD"
Returns: 1
"DFBEDBBCAEECBCEADFAEDEEFECCCCBCCADADCAEFDBAAE"
"BCDACDDAEBFFDCEAFEAFDCBDAFACFABECFAACFFBFDBDB"
Returns: 1
"AFBACDBBCCAFAEFECEFABBBEEADEEDAAFFFABAEEEEFDADB"
"EAEEBBDBDAABACCAECDDEBDBDBECEDCEAEABBEEDCDFDEAB"
Returns: 1
"DFBEFEFDCECEAAFDFDADAADBCBEBFFCDECBDEEDC"
"CBEDCDCAFDAFFDEFAEEAEDDFBADBDBEEDFACEFEC"
Returns: 1
"NTNKLNUURPLLUQNTNUTNNRKQPNUOUUOORSLNQKQTLSO"
"ROQLPONLUOTPOUKKSKNNNONQSMTSUKUOMQSTKQPUNRK"
Returns: 2
"ONUOPPMQRKLPKROUNOKLSRPMOLQLKTRKROTSNUTUTTRO"
"LRRLNKULKPNKPOPNPPPTTUMRPOKUUQNTLSPORQRTNTSK"
Returns: 0
"TLOOPSKQQULRSLMNUQNTORUUOSLUQNSROLPOMPTKTSML"
"RKRMLKUSUNURKSQULRKUQUTMRTQRUORRSNUTNMUTKRTO"
Returns: 1
"TRMMOLKNPONUQQNMMQKNSPUQRPUKSQLTOPTSOLNKNMO"
"TNRLUTPKUQMMNSKOSSKRUTQQRSPSUURTPSQTNTNQMUR"
Returns: 2
"UULOKKTROPRMMOPUNTRLNRKRTKONLMMNLURNNNQMONPRQTNL"
"LUKSKPNMKTPKMQTKOSSQNPQLSSMTRNOUKMKLQMNOROQQPNMN"
Returns: 3
"OLQPPMONLSROSNMPQLPKMLTUQQOUUQSUSLOUPKSQ"
"POOPTMSNNRLPPNNSQOMUULLOQSKMKUPOSPPMNOLS"
Returns: 1
"QNKPTQUUOPTMTPRRURUPMOMRKPNQNNNQSLSRRNNOLNOLSKTKUM"
"SUSSLTMQPKUPNOQQNRKTRUTRMKQNMLNKOUNUMKOUKRPSMRQLMR"
Returns: 2
"NPOPOULNQUQRLRMSSQNNQMPSPPLOQTLQPSLLUQLNRPQRSMSMQ"
"KOSNTOSNOOPMQSUKNRUTMPPLLMLSLUONUQLLTPUPRROKQKQSK"
Returns: 3
"SUPSUNQMQLQRNUUUQMMQMLMUSUNQSKTOTMKNTPRKS"
"PPLSQOTLKNLRLOTKRQNPRNNRQPPTLOPKLLUOOTMTS"
Returns: 1
"NLSRLKSTOPTSPUSQPLNLPUPKOQQTMQTUTLMSKROTPSONKLL"
"STLRLMQTMNULUUUQTPPMQPPORTTOMMKSOTPQTTLLLOPUONL"
Returns: 1
"WJYECOOREHIEINIMZFPNFAHLCTOFVRADIJZFIDOX"
"XEAPDXVFWGMHYXFRHAXCFOLLFOJXJGUWVCYTIZJB"
Returns: 4
"IHEOBGBRADONAHVZYQMGREVAFCROEIEWSRDCFTQQNTFPJWX"
"RVZZQXKJMTJTKJWCQZVKRINZWOVPJJUNHKTSBRQRYSHCCCA"
Returns: 3
"YHYDGMZBYIOPJGIULNJHMUHFNUJGETXSMIRNYCTVA"
"KJVAENZKOFZQFBJNDTEPUUJFDCLIATOYVYBHRRWFG"
Returns: 7
"KVDWGAUCFUKVELGZAVUNAEHBNXYROHENBBNRZEIYW"
"KHDEQKYHPWEMSQCAJKOKPOHNDIVRNZDKFPSGKEJDE"
Returns: 6
"GYBVVSSAYUVEYPVCXBWLUJTDSEAEOQWOPBDSFYZUI"
"PRIUPGHQCXELHEZIXAKAYFZARSKOMHEXJQJSXDBGK"
Returns: 6
"BBILMYYLETKBSWECOQIRPAJHSJPKPDFRYOOSGZQVBOFBOYSOX"
"UFGEVUCNMLZESVXZZQRHPEHBIEFOFIKIZZVKEUBALMPGJJTIP"
Returns: 6
"SIRPGHFPPELKYKNJZZANQSHRPENYWBAXRAQCXZTGWETEHSYUVM"
"YVRFQJUDXIZHVLXOQMSPRAAPABAQLVXBROFXSYUNACCWOLOQUZ"
Returns: 3
"KGNRRVNSOFPASTIEUXHMTYWRDVMRGKJEOGVYMFBAYYKA"
"FPMKEKLYOZYPXGPMGDONKBLEEMNSNIECGUPMNKIZXULG"
Returns: 7
"SGTRWPLBEOCLXUVZMOECITDAFOJJMGSXMMEYZGBNFLP"
"MXUJWDSAPZCNCUNLITIRKJEADPZYEKSWZLIZSHFDGLV"
Returns: 5
"MQELPVDYLSHSQZVQUEEOYGFFQTQEIQVRNQBNUIAZRYODHIUHN"
"IAZQMFESLOLAUETNOXRWQOAIHXZKFLZITZBGZNOQEBFFFHTYU"
Returns: 6
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
Returns: 0
"AACCEEEE"
"BBDDFFGH"
Returns: 2
"ABCDEFGHI"
"BCAEFDHIG"
Returns: 2
"DPAZHJCMTYZZJJZKOFYVCANUBMZJSWKVMEXQFYNGIJLPUSEKET"
"TLXJCDBSCLPPLVNAMQROZWBCYPMTZXGUQDBMNUYZKZNXDOYINX"
Returns: 5
"AAX"
"BBY"
Returns: 1
"KFJDUFHDBCHDGFJGKVCMDHFYFYDIFKJGFHDGFYTFGDKHSDHFSK"
"GFHDGFYTFGDKHSDHFSKKFJDUFHDBCHDGFJGKVCMDHFYFYDIFKJ"
Returns: 0
"AACC"
"BBDD"
Returns: 1
"ABCDEF"
"BCAEFD"
Returns: 1
"AABBCCZ"
"DEFGHJZ"
Returns: 3
"CCCCCCCCHHHHIJKLZZXXYYTORPNSWW"
"BBAADDEEGGFFJKLMXYUVRTOLQPNWSS"
Returns: 8
"AAAAAABCCXZ"
"LMNOPBCDXYC"
Returns: 3
"AAABAABB"
"BBCCAABB"
Returns: 0
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"XABCDEFGHIJKLMNOPQRSTUVWXZ"
Returns: 1
"AAAAAAAAAABBBBBBBBBCCCCCCCCDDDDDDDEEEEEEFFFFFGGGGH"
"BCDEFGHIJKCDEFGIHJKDEFGHIJKEFGHIJKFGHIJKGHJIKHIJKI"
Returns: 0
"AACCEE"
"BBDDFF"
Returns: 2
"VXXBY"
"XBBCA"
Returns: 2
"ASDJKHASJKDHASJDKHASKJDHKAASDLJALSDJASLDAJAA"
"ASHDJKHJKASDFHJKSDAFASFJHJKASHDFJKSAJFHSJKFI"
Returns: 2
"ABCDEFGZCDGHDUIJKCJSHUWFJHUWUHBSBXJHSDHKDKJHS"
"EFGZCDGHDUIGTREHSGYUWNBCHDJKHSUHWBXUSVBXBNAHY"
Returns: 4
"KLJSDHGKJDRSHGKLJHDFGF"
"LFGJOEIRUVBOJLBJHERBHJ"
Returns: 4
"ABCDEFGHIJKLAMNAOSTNERNTTAPJAWEIRADSHFANSDKNXZCVVF"
"ASLKJFAOITRNWKNRAKWJEORQPOWEQWDMASIFAIRJIAREJFOERU"
Returns: 5
"ABBC"
"BCCD"
Returns: 1
"ABBBBBBBBCCCCDDEEEEEFHIJQVDXCXXPPPPRRRTTSSOQMMMMMM"
"HHCGEDKJIHGEJJKGFXYZGGJKQVXCDPRRTSOTSOSOOKKQLNWLNW"
Returns: 9
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"
Returns: 1
"QWERTYUIOPASDFGHJKLZXCVBNMQWERTYUIOPASDFGHJKLZXCVB"
"QWERTYUIOPASDFGHJKLZXCVBNMMNBVCXZLKJHGFDSAPOIUYTRE"
Returns: 12
"AAABBBCCCDDD"
"XXXYYYZZZEEE"
Returns: 3
"AAAAAIIIIIOOP"
"BCDEFJKLMNPQQ"
Returns: 6
"AAAAAAAAAA"
"CBXYQCBXYQ"
Returns: 0
"BBB"
"AAC"
Returns: 0
"AAAA"
"ABCD"
Returns: 1
"AABBXC"
"BBCCAY"
Returns: 1
"AAAAAAAAXXYYZZ"
"CBDEFGIHXXYYZZ"
Returns: 6
"AAAAAA"
"BBCCDD"
Returns: 0
"CBCDE"
"ACDEC"
Returns: 0
"AABEEF"
"BCDFGH"
Returns: 1
"AAAACCBBBDDABCBABCBDABDABCASDAAS"
"BHGCHGEFDEFAESAJKDHAAKJDADWADAER"
Returns: 1
"AB"
"BA"
Returns: 0