Problem Statement
Definition
- Class:
- NextHomogeneousStrings
- Method:
- getNext
- Parameters:
- int, int, String, long
- Returns:
- String
- Method signature:
- String getNext(int d, int n, String seed, long k)
- (be sure your method is public)
Notes
- If A and B are two Strings of the same length, then A comes earlier lexicographically than B if it contains a smaller character at the first position where the Strings differ.
Constraints
- n will be between 1 and 9, inclusive.
- d will be between 1 and n, inclusive.
- k will be between 0 and 1000000000000000000 (10^18), inclusive.
- seed will contain between 1 and 50 characters, inclusive.
- seed will contain at least n characters.
- seed will contain only lowercase letters ('a'-'z').
Examples
1
2
"aaa"
3
Returns: "ddd"
The condition n=2 and d=1 requires no two consecutive characters to be different. The only homogeneous strings in this case would be: "aaa", "bbb", "ccc", "ddd", ... , "zzz". "ddd" is the fourth one.
2
3
"abc"
0
Returns: "aca"
2
4
"ttrrzz"
6
Returns: "ttsssc"
9
9
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
1000000000000000000
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakmluxinkecojo"
8
9
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
1000000000000000000
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaauialgggesdxfk"
1
1
"a"
4
Returns: "e"
1
1
"a"
1234
Returns: ""
8
9
"abcdefghiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
0
Returns: "abcdefgiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
2
7
"abcdefg"
0
Returns: "acaaaaa"
No longer a tricky case.
8
9
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
1
Returns: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaab"
1
1
"aa"
50
Returns: "by"
4
6
"aghteassd"
5378843636977
Returns: ""
4
6
"aghteassd"
5378843636978
Returns: ""
4
6
"aghteassd"
48143649267
Returns: "zzzzzzzzz"
4
6
"aghteassd"
48143649268
Returns: ""
4
6
"aghteassd"
100483
Returns: "aghuuuzzz"
4
6
"aghteassd"
100484
Returns: "aghvaaaaa"
8
9
"abcdefghiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
987654321987654321
Returns: "abcdefgiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaubjyalyffnphp"
2
9
"qwertyuiopasdfghjklzxcvbnmqwertyuiopasdfghjklzxcvb"
987654321987654321
Returns: "wwwwpwwwwwwwwwwswwwwssswssssssssvvsssssssssssdddds"
2
6
"zjbrdidfznptkyrcwzrmtmaovadjmlasjylrlh"
161017101982535372
Returns: ""
3
9
"wbtmljcngiqaqhzjlcjmxdv"
152671632822947363
Returns: ""
3
9
"ffsudovdvcmmfazzygxcldfsuhsabaac"
588618793123736163
Returns: "ffttnnnnffnnnggggghggqgqggggqvgv"
1
4
"mjiswggoyaqlbtpvuurwwd"
508076030000877367
Returns: ""
1
2
"mydkhjjolaqyyuio"
681796813750870494
Returns: ""
7
7
"ugpsqhcqahexziucmeokoreohlgqqeax"
458693086742393099
Returns: "ugpsqhcqahexziucmeopjqmdoeeiqtyw"
1
2
"layaqtvwggs"
827363008135085348
Returns: ""
1
1
"iuwdqufhsngbjazb"
627734589849298739
Returns: "iuwkfuytunhkornq"
1
6
"xqrwgfxyytbpwr"
35860789315137365
Returns: ""
3
5
"hqcnvbmlc"
780809284454958633
Returns: ""
6
6
"pvjttzt"
15251967175865072
Returns: ""
4
9
"qljnixcentuhjlledirixxnqhojmcurtnov"
744705331172606588
Returns: "qljnjjjjjaaaaaashhooaaaogaagazagfgg"
1
8
"ujesavkyownmaragmeuzavtkmqggqwcirbm"
224612649071353125
Returns: ""
1
7
"efsclljepzunaspmnd"
122628963912712396
Returns: ""
6
9
"qcidxqymibe"
999774354670631733
Returns: ""
6
8
"veizshplcathrtdw"
565437263355050623
Returns: "vfeeppclyyftfbyt"
6
6
"rttchyrfojswsypgioatxgpxquksuyjlbgjpvqcpoarstyxijv"
8303933872856992
Returns: "rttchyrfojswsypgioatxgpxquksuyjlbgjpvqewjlimcgwpzb"
1
1
"nliktkmwugszkielaxvwotpqvwiwfwwjzogdco"
820406421532403027
Returns: "nliktkmwugszkielaxvwotpqweyjvleemqquxl"
3
9
"vuveefytcrjqydefnmvzhamnbpdxreffnlhxgzymbpwenqjz"
370529795734391525
Returns: "vuveeueeeeeaaaaaaaaaaxakkxxaxxxaaaxaxttttaattaff"
4
7
"rubryewwnhzafsrvmafsqrugxdmewguibkdm"
183118399013308547
Returns: "rubryrbbaaaaaaaaaaazzzqvzqaazzzyoozx"
2
2
"ssadtklkuitxnbyxdepowgdnyfwskituxckavlfmsvzja"
451492565914815456
Returns: "ssadtklkuitxnbyxdepowgdnyfwskitvbvkifxornmogs"
3
6
"uffpnxkyxkmzepvciwdvprezvmofabmihbzxfwwyrmpillchl"
990085593971163469
Returns: "uffppfaaaaaaaaaaaaaaaaaaaaeggeeooooowbbwbbdbbwwwy"
1
2
"yu"
191001040783842403
Returns: ""
1
1
"kfpjhnbcnbbwebhqonctaqscwmrpgfyidkvwvllhimuwchdnh"
404657974508279689
Returns: "kfpjhnbcnbbwebhqonctaqscwmrpgfyidkvwzrruulkxhbrsw"
4
9
"yufuclfizyuupzonqrahwbm"
659777990501168730
Returns: "yuujjuiiixixxghxhhxuuua"
1
2
"blxwrhexzgdirezewgogvqmikdjxwjxhcfajdzvbxauo"
285072968968476570
Returns: ""
1
1
"epdboa"
811243207234742873
Returns: ""
7
7
"ufwfbcqakudpfvmbpjekgirnxtnyybxynccextdqyimwfx"
636965764229081671
Returns: "ufwfbcqakudpfvmbpjekgirnxtnyybxynittbkckuonaoe"
2
5
"meauha"
731817502470930227
Returns: ""
1
4
"wyxajlaohipmhnpeetnumnithfzwlgurgnrjuppu"
838115371368469190
Returns: ""
4
7
"qvotybknzswfgqnbzogptcrlryerekxfbjnkebdpnlub"
840151680346107411
Returns: "qvouoooaaaaaaaaaaaaaaaaaaammemmbmmqqrrrdrwvw"
5
7
"dmqfxmpgrkmmsqddsrorxxyjwzibgyrtbxrezaqeko"
638712155222560570
Returns: "dmqfxmqaaaaaaaaaaaaaaaaaaaajghwggohxooxniz"
1
2
"fmszipy"
611013320506975062
Returns: ""
1
4
"nivqoquciasgtwyc"
632079707877440250
Returns: ""
1
3
"qireqzuusxvalhqgntsckcccsoecdfntetlyzzwyn"
880601761534185111
Returns: ""
1
1
"ejafzafj"
243741281353272774
Returns: ""
2
7
"pmxaabwjgodfpntghulbhkrdvwlfauqzqfei"
986931023339269
Returns: ""
9
9
"ookatvjoaaevyfisfw"
638846775380157723
Returns: "ookaucbpmcqufmodkl"
1
1
"rjymapgu"
566368663660497470
Returns: ""
5
5
"qzazimjdrgrslpdaxevbhnbdniruhdqeynvbzwiqisr"
367830453719327590
Returns: "qzazimjdrgrslpdaxevbhnbdniruhdubeekwogdknfv"
1
1
"xzsylwfuhgqnnstfkhqutorezzozegeaqmyickfxnbcvkvdw"
430992096425720848
Returns: "xzsylwfuhgqnnstfkhqutorezzozegeaqmympvhojukklavo"
5
7
"zimungfe"
681294360739127187
Returns: ""
6
7
"ngtdfdxfxwtkuygcqaxvuechsthespfjgglgpdnerup"
803543297882298575
Returns: "ngtdfdxfxwtkvffaaaaaaaaaaaaaacpcvpvezhvulvh"
3
8
"uhwvcsnxavqcz"
874620457882883753
Returns: ""
1
1
"gicodweaekevdtfrxikgxmltutketygtvd"
269300565842669697
Returns: "gicodweaekevdtfrxikgxphdmfxmyymjyo"
2
7
"bfaziwupfhpffwqijbuokoakunmzushjhghxclqtnnqzaie"
101848840541077234
Returns: "bjbbjbbbjbbbbbboooooooxoxxxooooooopppppppppppdd"
2
2
"lranmbtmpimvfofcgicezebgnhcysuuvfgupbewgk"
557502849839491807
Returns: "lranmbtmpimvfofcgicezebgnhcyyqsbmaprkyrub"
2
4
"rrbuubejbiftlfqvhqddtkcgdzhohcifvbsubglhw"
611434323312655713
Returns: "rrcccaaaaaaxxxhhhqqqdddbbbmmmmdmmmtttrrrr"
3
3
"eaogmdhjnfdpijlngqhtcvccvsxgeqfrx"
222283957814702018
Returns: "eaogmdhjnfdpijlngqhtfdqswcndnqxil"
1
3
"ronrthhazaadxogpmipwlqpwyueebghejgdqe"
26297644121207405
Returns: ""
6
8
"txyaaxaassaaaarghjsdohasdghususdidisisdodo"
10000000000000000
Returns: "txyaaxaassaaaarghjsgaaaaaaaaadntffiniqrddy"
2
5
"zzzzzaa"
100
Returns: ""
In this case, there are 25 homogeneous strings that follow the pattern "zzzzzXX", where X is any letter different from 'z'. There are another 25 homogeneous strings that follow the pattern "zzzzzXz". Finally, there are 26 homogeneous strings that begin with "zzzzzz". In total, there are only 25+25+26 = 76 homogeneous strings that are lexicographically greater than or equal to "zzzzzaa".