空间缩进用户,团结!我们必须与所有的低标签用户战斗!
您的任务(如果您选择接受它)是编写一个包含两个参数的程序或函数:
您必须遍历字符串的每一行,并将用于缩进的每个选项卡替换为给定的空格数,而每个不用于缩进的制表符(例如,在行的中间)替换为一个空格。
请注意,像\t \tabc
这样的行是未定义的行为;它们是由邪恶选项卡用户插入的,以使程序复杂化。
根据制表符必须死社会,你的程序必须尽可能短,以避免被邪恶标签用户发现。
这里使用\t
来表示选项卡。
输入字符串:
a
\t\tb\tc
d
输入号码:
4
输出:
a
b c
d
中线被缩进8个空格,每个制表符4(因为给定的数字是4)。
输入字符串:
\ta\t\tb
输入号码:
4
输出:
a b
注意:这不是标签扩展挑战的复制;它需要非常不同的输入格式和稍微不同的要求。
发布于 2015-09-10 01:15:16
n!('\t':x)=([1..n]>>" ")++n!x
n!x=f<A2gt;x
f '\t'=' '
f x=x
g n=unlines.map(n!).lines
然后g 3 "a\n\t\tb\tc\nd"
做这件事。
发布于 2015-09-09 13:46:09
def r s,t;s.gsub! /^\t/,' '*t;s.gsub!"\t",' ';end
发布于 2015-09-10 00:05:27
使用模板字符串,换行符是有效的,并且是计数的。
(s,n,r=n)=>[...s].map(c=>c<`
`?` `.repeat(r):(r=c<` `?n:1,c)).join``
在Firefox中测试运行下面的代码段。
F=(s,n,r=n)=>[...s].map(c=>c<`
`?` `.repeat(r):(r=c<` `?n:1,c)).join``
// TEST
out=x=>O.innerHTML+=x+'\n\n'
out('Input: "A\\n\\t\\tB\\tC\\nD" 4\nOutput:\n'+F('A\n\t\tB\tC\nD',4))
out('Input: "\\tA\\t\\tB" 4\nOutput:\n'+F('\tA\t\tB', 4))
<pre id=O></pre>
https://codegolf.stackexchange.com/questions/57462
复制