Problem Statement
In this problem, all strings are strings of lowercase English letters ('a'-'z').
You are given the
Below, we define how to compare two strings. This definition is the standard one and we include it just to have a complete, self-contained problem statement. If you already know how string comparison works, you do not have to read it.
Suppose S and T are two distinct strings. We say that S is smaller than T in lexicographic order (denoted S < T) if:
- either S is a proper prefix of T,
- or there is some i >= 0 such that:
- the first i characters of S are the same as the first i characters of T
- the next character of S is smaller than the next character of T
For example:
- "car" < "careful" because "car" is a proper prefix of "careful"
- "dog" < "donut" because the first two characters of both strings are the same ("do") and 'g' is smaller than 'n'.
Definition
- Class:
- LexOrder
- Method:
- between
- Parameters:
- String, String
- Returns:
- String
- Method signature:
- String between(String A, String B)
- (be sure your method is public)
Notes
- The statements "character x is smaller than character y", "character x is earlier in the alphabet than character y", and "character x has a smaller ASCII code than character y" are equivalent.
- The return value is case-sensitive. The string IMPOSSIBLE must be in all-uppercase.
Constraints
- A will have between 1 and 10 characters, inclusive.
- B will have between 1 and 10 characters, inclusive.
- Each character of A and B will be a lowercase English letter ('a'-'z').
- A will be lexicographically smaller than B.
Examples
"car"
"dog"
Returns: "careful"
Other valid return values include "ceiling", "catastrophiccancellation", "darling", "do", and "dododododo".
"car"
"cat"
Returns: "cash"
"abcdefghij"
"abcdefghik"
Returns: "abcdefghijklmnopqrst"
Note that the input strings always have at most 10 characters but the string you return may be longer (up to 50 characters).
"man"
"mana"
Returns: "IMPOSSIBLE"
"a"
"ab"
Returns: "aa"
"a"
"aaa"
Returns: "aa"
"zumba"
"zumbaa"
Returns: "IMPOSSIBLE"
"zumba"
"zumbazumba"
Returns: "zumbaa"
"cnrosiq"
"cnrosmtb"
Returns: "cnrosiqa"
"vadaizh"
"vadaizqloh"
Returns: "vadaizha"
"smqri"
"smqrihwkgp"
Returns: "smqria"
"ytlvjyz"
"yzri"
Returns: "ytlvjyza"
"rsbpjymix"
"rsbpjzhtd"
Returns: "rsbpjymixa"
"mpioa"
"mpiru"
Returns: "mpioaa"
"chwbmdacjb"
"cjhtxrers"
Returns: "chwbmdacjba"
"tscsnlj"
"tscsypte"
Returns: "tscsnlja"
"qlzk"
"qoa"
Returns: "qlzka"
"dvooiurvwb"
"dvooiurvwr"
Returns: "dvooiurvwba"
"mcxzdqwrxz"
"mcxzdqwsj"
Returns: "mcxzdqwrxza"
"yvgxuc"
"yvgxuczjmk"
Returns: "yvgxuca"
"ldctxnlb"
"ldctxnlbg"
Returns: "ldctxnlba"
"vjoyokv"
"vjoyokvs"
Returns: "vjoyokva"
"aanoqotkpn"
"aanoqotq"
Returns: "aanoqotkpna"
"qikratvmt"
"qikratvmtf"
Returns: "qikratvmta"
"matexcrmap"
"matexcrmau"
Returns: "matexcrmapa"
"xdqmd"
"xdqmdnrd"
Returns: "xdqmda"
"fvppotcmq"
"fvppotcmqk"
Returns: "fvppotcmqa"
"i"
"imthurlzzd"
Returns: "ia"
"cfsdhc"
"cfsdhq"
Returns: "cfsdhca"
"xfc"
"xfsm"
Returns: "xfca"
"dnjruv"
"dnjruyc"
Returns: "dnjruva"
"dbgzrlzqqn"
"dbgzronvnx"
Returns: "dbgzrlzqqna"
"agkbtndpxq"
"agkbtndwqd"
Returns: "agkbtndpxqa"
"gua"
"guatvjn"
Returns: "guaa"
"nlypibx"
"nxwphimbam"
Returns: "nlypibxa"
"ynll"
"ynloccpi"
Returns: "ynlla"
"fhnp"
"fjad"
Returns: "fhnpa"
"sairgrlpg"
"sairgrlpgv"
Returns: "sairgrlpga"
"qlbcjtbt"
"qlbcjtonx"
Returns: "qlbcjtbta"
"xcinl"
"xcinlmmfja"
Returns: "xcinla"
"ey"
"ruoiuu"
Returns: "eya"
"cbdq"
"cbtj"
Returns: "cbdqa"
"tnrxptsaft"
"tnrxptsafz"
Returns: "tnrxptsafta"
"otjnyota"
"otjnyotzzp"
Returns: "otjnyotaa"
"xnklrjzj"
"xnklrjzo"
Returns: "xnklrjzja"
"keqldefs"
"keqldefssz"
Returns: "keqldefsa"
"ykuzurgzhb"
"ykuzurgzm"
Returns: "ykuzurgzhba"
"ptkrrcide"
"ptxsvgitmd"
Returns: "ptkrrcidea"
"rldmtv"
"rldmuksby"
Returns: "rldmtva"
"gjoykydes"
"gjoykydesk"
Returns: "gjoykydesa"
"djgbituggv"
"djgbpcm"
Returns: "djgbituggva"
"ogydu"
"r"
Returns: "ogydua"
"yswpzb"
"yswpzjz"
Returns: "yswpzba"
"iysbcihtvw"
"iysbcisu"
Returns: "iysbcihtvwa"
"sfgsturk"
"sfgxy"
Returns: "sfgsturka"
"lffvxcbm"
"lffvxwoj"
Returns: "lffvxcbma"
"dzuwpzuikc"
"dzuwpzuikt"
Returns: "dzuwpzuikca"
"kojfhfir"
"kojfhfyqh"
Returns: "kojfhfira"
"obcxexmo"
"obcxexmoa"
Returns: "IMPOSSIBLE"
"hbm"
"hbma"
Returns: "IMPOSSIBLE"
"rqdraror"
"rqdrarora"
Returns: "IMPOSSIBLE"
"sffzyhiv"
"sffzyhiva"
Returns: "IMPOSSIBLE"
"grvpqz"
"grvpqza"
Returns: "IMPOSSIBLE"
"oikqd"
"oikqda"
Returns: "IMPOSSIBLE"
"yizh"
"yizha"
Returns: "IMPOSSIBLE"
"z"
"za"
Returns: "IMPOSSIBLE"
"hwx"
"hwxa"
Returns: "IMPOSSIBLE"
"xwyckxrx"
"xwyckxrxa"
Returns: "IMPOSSIBLE"
"kudz"
"kudza"
Returns: "IMPOSSIBLE"
"qfile"
"qfilea"
Returns: "IMPOSSIBLE"
"cfb"
"cfba"
Returns: "IMPOSSIBLE"
"ftuzrttdj"
"ftuzrttdja"
Returns: "IMPOSSIBLE"
"z"
"za"
Returns: "IMPOSSIBLE"
"fcoidj"
"fcoidja"
Returns: "IMPOSSIBLE"
"syyp"
"syypa"
Returns: "IMPOSSIBLE"
"yeh"
"yeha"
Returns: "IMPOSSIBLE"
"htjivxoza"
"htjivxozaa"
Returns: "IMPOSSIBLE"
"gxanf"
"gxanfa"
Returns: "IMPOSSIBLE"
"aazz"
"abaa"
Returns: "aazza"
"ab"
"abad"
Returns: "aba"
"a"
"za"
Returns: "aa"
"abc"
"abcaaa"
Returns: "abca"
"aaa"
"aaaaaa"
Returns: "aaaa"
"aaa"
"aaaaa"
Returns: "aaaa"
"aaaa"
"zzzza"
Returns: "aaaaa"
"aba"
"abca"
Returns: "abaa"
"abc"
"abca"
Returns: "IMPOSSIBLE"
"aba"
"abac"
Returns: "abaa"
"aa"
"aaaaa"
Returns: "aaa"
"abc"
"abcd"
Returns: "abca"
"b"
"baa"
Returns: "ba"
"azzzzzzzzz"
"b"
Returns: "azzzzzzzzza"
"aa"
"aaab"
Returns: "aaa"
"car"
"hacar"
Returns: "cara"