使用最少的Unicode字符,编写一个接受以下三个参数的函数:
n影响的多米诺骨牌0或L,右侧为1或R )一旦多米诺骨牌被推翻,它也必须以同样的方向推翻剩余的多米诺骨牌。
您应该输出多米诺骨牌,|代表一个站立的多米诺骨牌,\和/分别代表一个骨牌向左和向右倾倒。
10, 5, 1应该返回||||//////
6, 3, 0应该返回\\\|||
发布于 2014-07-09 18:45:29
e=->n,k,r{k-=r;'\|'[r]*k+'|/'[r]*n-=k}该函数将方向作为整数(右侧为1,左侧为0 )。接受字符串的函数长8个字符:
d=->n,k,r{n-=k;r<?r??\\*k+?|*n :?|*~-k+?/*-~n}用法示例:
puts e[10, 5, 1] # or d[10, 5, 'r']
||||//////
puts e[10, 5, 0] # or d[10, 5, 'l']
\\\\\|||||发布于 2014-07-09 19:43:47
f R i l=(i-1)#'|'++(l-i+1)#'/'
f L i l=i#'\\'++(l-i)#'|'
(#)=replicate假设有一个类型方向,它有构造函数R和L。
发布于 2014-07-09 19:30:31
最后一次加在规则上是相当不错的( 0/1代替'l'/'r')。实际上我的比现有的python解决方案要小。0是左,1是右
def f(a,b,c):d,e='\|/'[c:2+c];h=b-c;return d*h+e*(a-h)
# Usage:
print(f(10,5,1)) # => ||||//////
print(f(10,5,0)) # => \\\\\|||||https://codegolf.stackexchange.com/questions/33221
复制相似问题