Problem Statement
The suffix array of a string S is defined as the permutation of suffix numbers that corresponds to their lexicographic order. For example, suppose that S="abca". If we order all suffixes of S lexicographically, we get the following: "a" < "abca" < "bca" < "ca". The corresponding suffix numbers are 3, 0, 1, and 2, in this order. Thus, for this string S the suffix array would be {3, 0, 1, 2}. Note that the length of a suffix array is the same as the length of the original string.
In this problem, we will only consider strings of lowercase English letters ('a'-'z'). You are given a
Definition
- Class:
- SuffixArrayDiv2
- Method:
- smallerOne
- Parameters:
- String
- Returns:
- String
- Method signature:
- String smallerOne(String s)
- (be sure your method is public)
Notes
- Given two different strings A and B of the same length, A is lexicographically smaller than B if we have A[i] < B[i] for the smallest i such that A[i] and B[i] differ.
Constraints
- s will contain between 1 and 50 elements, inclusive.
- Each element in s will be a lowercase letter ('a'-'z').
Examples
"abca"
Returns: "Exists"
For example, "aaqa" < "abca" but their suffix arrays are the same.
"bbbb"
Returns: "Exists"
Obviously, one of the strings smaller than "bbbb" with the same suffix array is "aaaa".
"aaaa"
Returns: "Does not exist"
The string "aaaa" is already the lexicographically smallest 4-letter string.
"examplesareveryweakthinktwicebeforesubmit"
Returns: "Exists"
"b"
Returns: "Exists"
"atgctubcwlroomkowbvlbleofqujtykqa"
Returns: "Exists"
"beefgdgaadficdgchfehcfaaifbafb"
Returns: "Does not exist"
"fgqllpllcahbdjoqkmhoagdhmokjibfdcmhclkfpqkhc"
Returns: "Exists"
"bbbaaaccacacccbbabccaacbbcbbbaccbacabacacbccbbccab"
Returns: "Does not exist"
"cababacacbcaccbccccabcbccacccccbbbab"
Returns: "Does not exist"
"ekdcipkgojljqcnnjkmrejnbellnircpejanmhpac"
Returns: "Exists"
"bccebcklandbdkjeeakdhgligmngfaiiamnacbbdi"
Returns: "Exists"
"bcdcddeafdaeecafcaddccefccbaabccbce"
Returns: "Does not exist"
"acbnihbfgoolgjedggk"
Returns: "Exists"
"caacbaa"
Returns: "Exists"
"bbccebdebebbcaacdeed"
Returns: "Does not exist"
"thdddapjpnrcuddxuylsqipnfwdeppmepzea"
Returns: "Exists"
"bbbccacaaccbbccaababcacccbcaacaaccbbabccacacbab"
Returns: "Does not exist"
"aaaaaaaaaaaaaaaaaaaaaa"
Returns: "Does not exist"
"mmfkbfkhijlljbkcbmbleheckmelbiicjdllmf"
Returns: "Exists"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: "Does not exist"
"gvaribicppg"
Returns: "Exists"
"ccbbccbdabdacaabaccbcccbbadbdba"
Returns: "Does not exist"
"daddcecdbbcbeadcaebaaeccedbddcdadbdacdebdbdd"
Returns: "Does not exist"
"lkjdpp"
Returns: "Exists"
"onglrrrmimqoejgmjcdnjrspcaafijmkjsmkngd"
Returns: "Exists"
"bonpnidbmeqctoekgatrsqhmltislfgbfcdh"
Returns: "Exists"
"dtui"
Returns: "Exists"
"wwrchtepph"
Returns: "Exists"
"abbaabbaaabababaabbbbbabbbbbababbabbabaabababbaabb"
Returns: "Does not exist"
"igiijmgjhbmfh"
Returns: "Exists"
"cmffckalghmgcjkjfimiglaekbab"
Returns: "Exists"
"qfhbjqsdnnoehpaeamlhsocjqjrrlapuelaknejtmmaks"
Returns: "Exists"
"fbljlkdnnaeaptkjlzmv"
Returns: "Exists"
"ebfbdgiiciebbicabgfdeac"
Returns: "Exists"
"ccdbaebeaacbbaccdcaeaecbcdddcdacecabb"
Returns: "Does not exist"
"xaplcmeeiunobkwnehhdgnsowmlfnn"
Returns: "Exists"
"jhbjkkjdkjbijfe"
Returns: "Exists"
"dcggegfgebafddfbcdagafca"
Returns: "Does not exist"
"pbhjedr"
Returns: "Exists"
"mfbnlfhfcigncmbjedabed"
Returns: "Exists"
"qlensmrwsnlkpvtdectownnutg"
Returns: "Exists"
"bd"
Returns: "Exists"
"skirjrbobmiscnjqetetdfmn"
Returns: "Exists"
"agfcbkajdaebfmbdhcfkbhbmbj"
Returns: "Exists"
"pppfgmgguequrtecfbnqkjopbha"
Returns: "Exists"
"bcbdeaedceedabaebedbdcacedced"
Returns: "Does not exist"
"mlkilehfaljaibmabhabkjal"
Returns: "Exists"
"bbnelcjqcigsdajojgerfegafcvjffcrblpfbtmbodn"
Returns: "Exists"
"ighbbfifbgabhebcfhijdajcdihbfjfgaigjed"
Returns: "Does not exist"
"inmforrpdambgb"
Returns: "Exists"
"defcnlkcaabecdjabegfcalgaldccencekgmkmmcmmhg"
Returns: "Exists"
"cdddfefdaebgbgacadbebfdeebfaecgacacdfedaffebeebc"
Returns: "Does not exist"
"onpmnjldjbkdbljpqpficfo"
Returns: "Exists"
"odeikjbigipjnj"
Returns: "Exists"
"aleclmbcngkiihfinbmgbgdidjmelofja"
Returns: "Does not exist"
"beefgdgaadficdgchfehcfaaifbafb"
Returns: "Does not exist"
"efnjjmjjcagbdhlnikglafdgklihhbedckgcjiemnigc"
Returns: "Does not exist"
"bbbaaaccacacccbbabccaacbbcbbbaccbacabacacbccbbccab"
Returns: "Does not exist"
"cababacacbcaccbccccabcbccacccccbbbab"
Returns: "Does not exist"
"dfdcdkfdjegelciiefhldeibdggidlckdeaihdkac"
Returns: "Does not exist"
"bccebcjkaldbdjieeajdgfkhfklffahhaklacbbdh"
Returns: "Does not exist"
"bcdcddeafdaeecafcaddccefccbaabccbce"
Returns: "Does not exist"
"abageeacdgggdfcbddg"
Returns: "Does not exist"
"baabbaa"
Returns: "Does not exist"
"bbccebdebebbcaacdeed"
Returns: "Does not exist"
"idbbbafdfehajbbkjldhgdfeckbcffecfmca"
Returns: "Does not exist"
"bbbccacaaccbbccaababcacccbcaacaaccbbabccacacbab"
Returns: "Does not exist"
"aaaaaaaaaaaaaaaaaaaaaa"
Returns: "Does not exist"
"jjdhadhefgiigahbajaicecbhjciaffbgbiijd"
Returns: "Does not exist"
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Returns: "Does not exist"
"cfaedbdbddc"
Returns: "Does not exist"
"ccbbccbdabdacaabaccbcccbbadbdba"
Returns: "Does not exist"
"daddcecdbbcbeadcaebaaeccedbddcdadbdacdebdbdd"
Returns: "Does not exist"
"bbbacc"
Returns: "Does not exist"
"lkfinnnjgjmldhfjhbckhnombaaeghjihojikfc"
Returns: "Does not exist"
"bmlnlhdbkdocqmdifaqopogkjqhpjefbecdg"
Returns: "Does not exist"
"abcb"
Returns: "Does not exist"
"dddabdaccb"
Returns: "Does not exist"
"abbaabbaaabababaabbbbbabbbbbababbabbabaabababbaabb"
Returns: "Does not exist"
"cbccdebdcaebc"
Returns: "Does not exist"
"bjddbhaieejebghgdfjfeiachbab"
Returns: "Does not exist"
"nefbgnpckkldfmadajifplcgngooiamrdiahkdgqjjahp"
Returns: "Does not exist"
"cbecedbggacaghdceifi"
Returns: "Does not exist"
"ebfbdfggcgebbgcabffdeac"
Returns: "Does not exist"
"ccdbaebeaacbbaccdcaeaecbcdddcdacecabb"
Returns: "Does not exist"
"majfbgddekhibelhdeecdhjilgfdhh"
Returns: "Does not exist"
"dcadeedaedacdbb"
Returns: "Does not exist"
"dcggegfgebafddfbcdagafca"
Returns: "Does not exist"
"dabcbae"
Returns: "Does not exist"
"gdahfdedbedhbgafccaacc"
Returns: "Does not exist"
"hecfiehlifedgkjbcajflffjjd"
Returns: "Does not exist"
"ab"
Returns: "Does not exist"
"jfdieiahafdjbgehckckcdfg"
Returns: "Does not exist"
"afecbiahdaebejbdgceibgbjbh"
Returns: "Does not exist"
"iiiddgddlcjlklcbdagjfehiaea"
Returns: "Does not exist"
"bcbdeaedceedabaebedbdcacedced"
Returns: "Does not exist"
"ihgfhcedahgafbiabeabggah"
Returns: "Does not exist"
"bblejciochgqdaimigepfegafcriffcpbjnfbqkbmdl"
Returns: "Does not exist"
"ighbbfifbgabhebcfhijdajcdihbfjfgaigjed"
Returns: "Does not exist"
"deecefffcaebdb"
Returns: "Does not exist"
"defcljicaabecdiabegfcajgajdccelceigkikkckkhg"
Returns: "Does not exist"
"cdddfefdaebgbgacadbebfdeebfaecgacacdfedaffebeebc"
Returns: "Does not exist"
"ihjghfgcfagcagfjkjdebdi"
Returns: "Does not exist"
"gbbcedacbcgdfd"
Returns: "Does not exist"
"aba"
Returns: "Does not exist"
"aaab"
Returns: "Does not exist"
"abaa"
Returns: "Does not exist"
"aaba"
Returns: "Does not exist"
"aab"
Returns: "Does not exist"
"bb"
Returns: "Exists"
"acbca"
Returns: "Does not exist"
"aaac"
Returns: "Exists"