チャレンジ:
大文字と小文字のどちらか(またはどちらか)のみを含む文字列を指定して、tape
水平に配置して修正します。私たちは、アルファベットの二つの隣接する文字(ラップアラウンドを無視してのみ前進)の違いを確認し、そして同じくらいにスペースを充填することによって、これを行うTAPE
/ tape
私たちが必要となるよう。
例:
入力:abcmnnnopstzra
出力:abcTAPETAPETmnnnopTAstTAPETzra
どうして?
- 間
c
とm
する必要がありますdefghijkl
(長さ9)ので、我々がこれを埋めますTAPETAPET
。 - between
p
と(length 2)であるs
必要があるqr
ため、これをTA
;で埋めます。 - Between
t
と(length 5)であるz
必要があるuvwxy
ため、これをで埋めTAPET
ます。
チャレンジルール:
- 違いは前方にのみ適用されるため、間にテープはありません
zra
。 - のような同じ隣接する文字を複数持つことが可能
nnn
です。 - 合理的な形式で入力を行うことができます。単一の文字列、string-array / list、character-array / listなどにすることができます。出力には同じ柔軟性があります。
- 任意の方法で小文字および/または大文字を使用できます。これは、入力、出力、およびの両方に適用されます
TAPE
。 - 不要
TAPE
である可能性があります。その場合、入力は変更されません。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿しないようにしてください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準の規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
テストケース:
Input: "abcmnnnopstzra"
Output: "abcTAPETAPETmnnnopTAstTAPETzra"
Input: "aza"
Output: "aTAPETAPETAPETAPETAPETAPEza"
Input: "ghijk"
Output: "ghijk"
Input: "aabbddeeffiiacek"
Output: "aabbTddeeffTAiiaTcTeTAPETk"
Input: "zyxxccba"
Output: "zyxxccba"
Input: "abccxxyz"
Output: "abccTAPETAPETAPETAPETAPExxyz"
Input: "abtapegh"
Output: "abTAPETAPETAPETAPETtaTAPETAPETAPETApeTgh"
Input: "tape"
Output: "taTAPETAPETAPETApe"
ab[TAPETAPETAPETAPET]TA[TAPETAPETAPETA]PE[T]gh
追加されました[]
。