このサイトの人々は、投稿タイトルを飾るのが大好きです...
Stewie's sequence: + * - / + * - /
ただし、このタイトルをページURLに含める必要がある場合、簡略化されます。
stewies-sequence
チャレンジ
あなたの仕事は、投稿のタイトルを表す文字列が与えられると、その「URLフレンドリー」変換を出力/返すプログラムまたは関数を作成することです。
アルゴリズムは次のとおりです。
- 小文字に変換(該当する場合)
- すべてのスペース(
)、ピリオド(
.
)、コンマ(,
)またはスラッシュ(/
)をダッシュ(-
)に置き換えます - ダッシュ以外の英数字以外の文字を削除します。
- 隣接するダッシュのグループを縮小し(
a---b -> a-b
)、先頭または末尾にあるダッシュを削除します。
このアルゴリズムは簡略化であり、サイトの実際の方法と同じ結果を常に生成するとは限らないことに注意してください。
ルール
- 次の入力を想定できます。
- 空になりません。
- 少なくとも1つの英数字が含まれます。
- ASCII範囲32〜126の文字のみが含まれます(印刷可能)
- 完全なプログラムまたは機能が許可されています。
- 正確なタスク指定を行うビルトインは許可されていません。
- これはcode-golfなので、最短の解決策(バイト単位)が勝ちです!
テストケース
このサイトのほとんどの投稿はテストとして機能しますが、便利なリストを次に示します。
Loading... Forever -> loading-forever
N(e(s(t))) a string -> nest-a-string
"Hello, World!" -> hello-world
URL-Friendly titles -> url-friendly-titles
C.U.S.R.S -> c-u-s-r-s
1+2+3+4+...+n = -1/12? -> 1234-n-1-12
How can I use cmp(a,b) -> how-can-i-use-cmpa-b
いくつかの長いもの...
Export The $PATH Variable, Line-By-Line -> export-the-path-variable-line-by-line
Do n and n^3 have the same set of digits? -> do-n-and-n3-have-the-same-set-of-digits
Quine Anagrams! (Cops' Thread) -> quine-anagrams-cops-thread
The Golfer Adventure - Chapter 1 -> the-golfer-adventure-chapter-1
Bootloader golf: Brainf*** -> bootloader-golf-brainf
そして、いくつかのエッジケースチェックのサンプル(お気軽に提案してください):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
アンダースコア?私のコードは、アンダースコアがある場合を除いて機能します。
-
sはどうですか?それらを削除する必要がありますか?たとえば、でasdf-
、最後-
を削除する必要がありますか?