这个网站上的人们真的很喜欢修饰自己的帖子标题...
Stewie's sequence: + * - / + * - /
但是,当此标题需要包含在页面URL中时,它可以简化:
stewies-sequence
挑战
您的任务是创建一个程序或函数,给定代表帖子标题的字符串,该程序或函数将输出/返回其“ URL友好”转换。
该算法是:
- 转换为小写字母(如果适用)
- 用破折号()替换每个空格(
),句点(
.
),逗号(,
)或斜杠/
(-
) - 删除所有非字母数字字符,破折号除外。
- 缩小相邻破折号(
a---b -> a-b
)的组,删除所有前导/尾随的破折号。
请注意,此算法只是一种简化,可能不会总是产生与该站点的真实方法相同的结果。
规则
- 您可以假设输入:
- 不会为空。
- 将至少包含一个字母数字字符。
- 仅包含ASCII范围32-126中的字符(可打印)
- 允许使用完整的程序或功能。
- 这不准确的任务说明一个内置的是不是允许的。
- 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜!
测试用例
该网站上的大多数帖子都将用作测试,但这是一个方便的列表:
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-
,是否-
必须删除最后一个?