入力
非負の整数n
、およびs
英数字とアンダースコアのみを含む空でない文字列_
。の最初の文字はs
です_
。の下線はs
、他の文字で埋めることができる空白スペースとして解釈されます。
「無限ストリング」の無限シーケンスを次のように定義します。文字列は、無限に何度も繰り返されます。すべての場合、文字列はの文字で空白スペースを埋めることから取得されます。したがって、最初のが、で置換され、2番目がで置換されます。の最初の文字はでないため、すべての空白スペースが最終的に埋められ、すべてが最終的な値で置き換えられた無限の文字列で示されます。s1 = s s s...
s
k > 1
sk+1
sk
s1
_
sk
s1[0]
s1[1]
s
_
s∞
_
出力
の最初のn
文字列。s∞
例
入力n = 30
とを考慮してくださいs = ab_c_
。我々は持っています
s1 = ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_ab_c_...
代入のブランクに、我々は持っていますs1
s1
s2 = abacbab_ccab_caabbc_abcc_abacbab_cc...
再び空白に置き換えます。その結果、s1
s3 = abacbabaccabbcaabbc_abcccabacbab_cc...
もう1つの置換:
s4 = abacbabaccabbcaabbcaabcccabacbabbcc...
これから、の最初の30文字をすでに推測できます。s∞
abacbabaccabbcaabbcaabcccabacb
これは正しい出力です。
ルール
完全なプログラムまたは関数を作成できます。最小のバイトカウントが優先され、標準の抜け穴は許可されません。誤った入力でのクラッシュは許容されます。
テストケース
0 "ab__" -> ""
1 "ab__" -> "a"
3 "ab__" -> "aba"
20 "ab" -> "abababababababababab"
20 "ab__" -> "abababababababababab"
20 "ab_" -> "abaabbabaabaabbabbab"
30 "ab_c_" -> "abacbabaccabbcaabbcaabcccabacb"
50 "ab_a_cc" -> "abaabccabaaaccabbacccabcaaccabbaaccabaaaccabcaccca"
50 "abc____" -> "abcabcaabcbcaaabcbcbcabcaaababccbcbabccabcabcaaaba"