命运笔记-在职员上放笔记


19

僵尸启示录已经来临,世界即将终结。突然,某人发现了一个公式,该公式需要当前的小时,分​​钟和日期,然后吐出一个完美的音符以弹奏钢琴,这会立即杀死每一个听到它的僵尸。不幸的是,世界上只剩下一名钢琴演奏者,他已经忘记了如何阅读笔记,但是他仍然知道如何阅读乐谱。当然,这是非常时间敏感的事情,因此拥有一台计算机似乎很自然。1个

您的挑战是记下一个音符(例如)G,并输出放在五线谱上(高音谱号)的音符,如下所示:

-----

-----
   |
---|-
   |
--O--

-----

规格:

  • 您必须输出由-----(5点划线)和空白行组成的交替行。总共有5 -----s。注释必须叠加在此职员的上方。
  • 输入将指定注释的位置。输入将是:
    • 可选的HL,指定“高”或“低”
    • Ato 的字母G,指定音高
    • 可选的#b,指定为锐利或平坦。
  • “注释”定义为:
    • 一个O(大写O)与工作人员中间对齐,位于笔记的位置。(最上面的一行是HF(高F),最下面的一行是E(正常E)。)
    • 三秒|(竖线),茎,将为:
      • 如果音符在中线(B)或上方,则在音符左侧留一个空格,然后向下移动(从音符下方开始一个空格),或者
      • 音符右边的一个空格,如果音符在中线以下,则向上移动(从音符上方开始一个空格)。
    • 如果在输入中指定,则在音符左侧直接一个#b一个空格。
  • 如果音符太高或太低,则必须添加分类帐行。这些行将是---(宽度只有3个破折号,而不是5个破折号),并且仅在注释在总帐本行的上方或下方(分别针对顶部/底部总帐行)时才显示。
  • 多余的空间可以放置在您想要的任何位置;例如,如果可以帮助保存任何字符,则可以使空白行具有空格或在分类帐行之后具有空格。

这是一个可视化视图,为了更容易地理解规格,所有注释名称都位于各行旁边:

      HB
 ---  HA
      HG
----- HF
      HE
----- HD
      HC
----- B
      A
----- G
      F
----- E
      D
 ---  C
      LB
 ---  LA
      LG
 ---  LF
... (bottom cut off for brevity, you get the idea anyway)

这里有一些更多的示例可用于测试程序:

输入: HG#

 #O
-|---
 |
-|---

-----

-----

-----

输入: LAb

-----

-----

-----

-----

-----
   |
 --|
   |
 bO-

输入: HB

  O
 |--
 |
-|---

-----

-----

-----

-----

输入: C

-----

-----

-----

-----
   |
---|-
   |
 -O-

这是,因此最短的代码(以字节为单位)将获胜!

1:最现实的博览会evar!:-P


2
音符的右边#b右边而不是左边看起来很奇怪。真的需要什么吗?
Thomas Baruchel 2014年

2
B#之类的呢?1.原样绘制 2.拒绝 3.默默转换为C?
Digital Trauma 2014年

2
最好明确指出它应该是高音谱号。
2014年

3
任何人都可以在赋格尝试中吗?
AJMansfield 2014年

3
@AJM是的,它必须是ASCII艺术。
门把手

Answers:


1

Golfscript,211 210 209 197 195 192字符

赢得(截至本文)赢取了我最新的Python版本的GolfScript 版本

"J"\+[0]+.1=71>>3<{}/@7*2/246-@3+7%-:z;:c;21,{..3z<3z
if<\11z>11z
if>|{;}{...2>\12<&\2%.{'-'' 'if}:Q~:9;&Q\.z={c!9{[c]''+}if}{..z>\4z+<&8z>&'|'9if}if\.z='o'9if\..z
4-\<\z<&7z<&'|'9if\;3$n}if}/

这里进行测试(前两行是用户输入的,通常来自stdin)。

“可读”版本:

;"HCb"

"J"\+[0]+       #process input
.1=71>>3<       #first char is HJL, second is letter, third is #b or space
{}/             #spill chars onto stack, now we working with ints
@7*2/246-@3+7%- #convert HC/JD/LE etc to a number from 0 to 20
:z;:c;
21,{            #for r in range(21):
  ..3z<3z if<           #either out-of-bounds or process the line
  \11z>11z if>|
  {;}{
    ...2>\12<&\2%.{'-'' 'if}:Q~:9;&Q\        #1st char
    .z={c!9{[c]''+}if}                       #2nd char accidental
       {..z>\4z+<&8z>&'|'9if}if\            #2nd char stem or row
    .z='o'9if\                              #3rd char
    ..z 4-\<\z<&7z<&'|'9if\                 #4th char stem or row
    ;3$                                      #5th char=1st char
    n
  }if
}/

Aaaaaaand再次被GolfScript击败。:)...
马丁·恩德2014年

@ m.buettner:哈哈,它永远不会结束。
Claudiu

1
更好!现在,我只需要查找6/9字节即可赶上:D(尽管我不知道该怎么做)
Martin Ender 2014年

@ m.buettner:还有2个字节!每个人都如此残酷……我可能现在必须停下来。祝好运!
Claudiu 2014年

2
噢,该死的地狱……就在我以为我打败了你的209的时候。我想我正在放弃。GolfScript为准。;)
Martin Ender 2014年

6

红宝石- 271 267 252 249 234 229 220 214字符

我实际上只是为此学习了Ruby。因此在打高尔夫球方面肯定还有改进的空间。还是真的做任何事情。但是我需要一种具有可变字符串的语言。:)

def f(n)s=[0]*20
s.fill{|i|i%2>0?i<3||i>11?" ---":?-*5:" "*5}
s[l=(3-n[(p="H_L".index n[0])?1:0].ord)%7+7*(p||1)][1,2]=("#b"[n[-1]]||s[l][1])+?O
s[l+3-2*o=l>7?3:1,3].map{|t|t[o]=?|}
puts s[[3,l].min..[11,l].max]end

有点不符合要求:

def f(note)
  staff=[]
  0.step(20) {|i| staff[i] = " "*5}
  1.step(19,2) {|i| staff[i] = " ---"}
  3.step(11,2) {|i| staff[i] = "-"*5}
  level = 7
  if !(pos="HL".index note[i=0]).nil?
    level = 14*pos
    i += 1
  end
  level += (73-note[i].ord)%7
  staff[level][2] = "O"
  mark = note[-1]
  if !"#b".index(mark).nil?
    staff[level][1] = mark
  end
  offset = (level > 7) ? 3 : 1
  staff[level-2*offset+3,3].map {|line| line[offset] = "|"}
  first = [3,level].min
  last = [11,level].max
  puts s[first..last]
end

如果允许前导空白行,我可以再将其削减2个字符,降至212个字符。此解决方案无法填充未打印的行:

def f(n)s=[]
[3,l=(3-n[(p="H_L".index n[0])?1:0].ord)%7+7*(p||1)].min.step(l>11?l:11){|i|s[i]=i%2>0?i<3||i>11?" ---":?-*5:" "*5}
s[l][1,2]=("#b"[n[-1]]||s[l][1])+?O
s[l+3-2*o=l>7?3:1,3].map{|t|t[o]=?|}
puts s
end

是lambda的公平游戏吗?然后我可以用第一种方法获得210个字符

f=->n{s=[0]*20
s.fill{|i|i%2>0?i<3||i>11?" ---":?-*5:" "*5}
s[l=(3-n[(p="H_L".index n[0])?1:0].ord)%7+7*(p||1)][1,2]=("#b"[n[-1]]||s[l][1])+?O
s[l+3-2*o=l>7?3:1,3].map{|t|t[o]=?|}
puts s[[3,l].min..[11,l].max]}

207个字符以及其他空行:

f=->n{s=[]
[3,l=(3-n[(p="H_L".index n[0])?1:0].ord)%7+7*(p||1)].min.step(l>11?l:11){|i|s[i]=i%2>0?i<3||i>11?" ---":?-*5:" "*5}
s[l][1,2]=("#b"[n[-1]]||s[l][1])+?O
s[l+3-2*o=l>7?3:1,3].map{|t|t[o]=?|}
puts s}

当然,现在您需要这样做f.call("HGb")


哈,+ 1是学习一种全新的语言!;-)这里有个提示:!x.nil?等同于!x。对于一行ifs,if x;y;end;等于y if x。您也可以在该字符串中使用文字换行符。
门把手

@Doorknob谢谢,我会努力工作的!
Martin Ender 2014年

@Doorknob hm,我只能if上班了。如果我使用?\n(如果这就是您的意思),则需要添加一个空格,因此我一无所获。并且删除.nil?s根本不起作用(始终评估为true)。
马丁·恩德

我的意思是在两个引号之间添加换行符。而且我认为删除时需要额外的括号.nil?,但是用字符表示是值得的。
门把手

@Doorknob啊,没有!x.nil?就是!!x。:)
Martin Ender 2014年

2

Python中,329个 309 295 286 280 277字符

现在打些球。仍然可以改进,但是不确定是否可以用这种方法击败红宝石或golfscript解决方案。

R=range
N='J'+raw_input()+' '
X=N[1]>'G'
a,b,c=N[X:3+X]
z=266-ord(a)/2*7+(ord(b)-4)%7
Z=[list((' '*5,(' ---','-'*5)[8<r<18])[r%2])for r in R(21)]
Z[z][2]='o'
if' '<c:Z[z][1]=c
Q=(z<13)*2
for i in(1,2,3):Z[z+i*Q-i][Q+1]='|'
for r in R(max(17,z),min(z-1,8),-1):print''.join(Z[r])

最初我是逐行打印的,但是结果却花了太多时间,所以我生成了一个字符串网格,然后填写了需要填写的内容。输入来自命令行,例如:

>echo HG# | python note2_golf.py
 #o
-|---
 |
-|---

-----

-----

-----

在第5行中,您可以删除第二个逗号之前的空格
user12205,2014年

@ace:谢谢,错过了那个
Claudiu

2

GolfScript - 243个 232 228 227字符

我将CoffeeScript答案翻译为GolfScript,它更适合于字符串操作。

编辑:通过正确使用增量运算符保存了六个字符,通过充分利用堆栈保存了三个字符,以不负责任的方式重新定义了我不使用的运算符,另外六个保存了字符,另外一个通过不打印宽限线后的尾随空格来保存了六个字符。

完全打高尔夫球:

..0="HL"?2+3%:o)2%.@="CDEFGAB"?7o*+:`2%45 32if:r;
).2$,<{=}{;;r}if:&;
[" "5*:|" ---":g]4*[|"-"5*]5*+[|g|]+.
[`<~]\[`>([0=:^&79r^]''+\~]
+17`<`)18if<9`>`9if:j>:t 13`>.2*):x;
4,1>{`j-\2${+}{-}if}%\;
{.@<\t>(:v[x<'|'+x)v>+]\++:t}
/-1%n*

有评论:

# extract octave
..0="HL"?2+3%:o

# extract note
2%1\-.@="CDEFGAB"?7o*+:k

# line spacer
2%45 32if:r;

# extract accidental
1+.2$,<{=}{;;r}if:a;

# staff
[" "5*:|" --- ":g]4*[|"-"5*]5*+[|g|]+.

# lines below
[k<~]\

# note line and above
[k>([0=:w a 79r w]''+\~]+

# cut off just what we need
17k<1k+18if<
9k>k 9if:j>:t;

# and the note stem
13k>.2*1+:x;4,1>{k j-\2${+}{-}if}%\;

{
  .t<\
  t>(:v[x<'|'+1x+v>+]\++:t;
}/

# now output the note
t-1%n*

如果我能以一种我没有经验的语言来击败GolfScript解决方案,我会感到惊讶;)
Martin Ender 2014年

1
我不是GolfScript专家,但我想我几乎已经摆脱了所有要摆脱的角色,因此,如果您能找到另外两个角色,那就太好了!
benchand 2014年

尝试输入Go。它将输出oo|||:)
Jamie 2014年

1

Python中,250个 245 242 235字符

一种截然不同的方法最终击败了我的另一个方法!输入处理代码与此类似,仅此而已。

M=' -'
N=raw_input()+M
a,b,c=('J'+N)[N>'G':][:3]
z=ord(a)*7/2-246-(ord(b)+3)%7
for r in range(21):
 L=M[r%2];F=M[2<r<12and r%2]
 if min(3,z)<=r<=max(11,z):print F+((L,'|')[8>z<r<z+4],(L,c)[M<c])[r==z]+(L,'o')[r==z]+(L,'|')[z-4<r<z>7]+F

我根据行和列绘制了每个字符的值,然后进行打印:

#given row r, with note on row n, how to print each char?
#rows are:
#       HB : 0
#  ---  HA : 1
#       HG : 2
# ----- HF : 3
#       HE : 4
# ----- HD : 5
#       HC : 6
# ----- B  : 7
#       A  : 8
# ----- G  : 9
#       F  : 10
# ----- E  : 11
#       D  : 12
#  ---  C  : 13
#       LB : 14
#  ---  LA : 15
#       LG : 16
#  ---  LF : 17
#       LE : 18
#  ---  LD : 19
#       LC : 20
#chars are:
# 0 | 1 | 2 | 3 | 4
#
# 0,4:
#    if r%2:
#      if 2<r<12: '-'
#      else ' '
#    else: ' '
# 1: ' -b#|'
#    if r==n:
#      if A: c
#      else: ' -'[r%2]
#    elif n<8 and n<r<n+4: '|'
#    else: ' -'[r%2]
# 2: ' -o'
#    if r==n: 'o'
#    else: ' -'[r%2]
# 3: ' -|'
#    if n>7 and n-4<r<n: '|'
#    else: ' -'[r%2]

+1,最后一行似乎更像是Perl的黑魔法,而不是Pythonic的东西
Antonio Ragagnin 2014年

1

爪哇- 921个 907 863字符

我分别构建每个字符串,并将每个字符串存储在数组中。然后遍历数组并打印出每一行。

public class D{public static void main(String[]a){char[]z=a[0].toCharArray();char[]y=new char[3];y[0]=('H'==z[0]||'L'==z[0])?z[0]:'N';int o=(y[0]=='N')?0:1;y[1]=z[o++];y[2]=z.length>o?z[o]:'!';int n=y[1]<'C'?((int)(y[1]-'A'))+6:((int)(y[1]-'C'))+1;n=(y[0]=='N')?n+7:(y[0]=='H'?n+14:n);String s="     ";String b=" --- ";String[]u=new String[22];for(int i=1;i<=21;i+=2){u[i]=s;}for(int i=10;i<=18;i+=2){u[i]="-----";}u[20]=n>19?b:s;u[2]=n<3?b:s;u[4]=n<5?b:s;u[6]=n<7?b:s;u[8]=n<9?b:s;char c=u[n].charAt(0);char e=u[n].charAt(1);char[]h=new char[]{c,y[2]=='!'?e:y[2],'O',e,c};u[n]=new String(h);for(int i=0;i<22;i++){if(n<14&&i-n<4&&i>n)u[i]=u[i]!=null?u[i].substring(0,3)+"|"+u[i].charAt(4):s;else if(n>13&&n-i<4&&n>i)u[i]=u[i]!=null?u[i].substring(0,3)+"|"+u[i].charAt(4):s;}for(int i=21;i>=0;i--)if(!(i>n&&i>18||i<n&&i<10))System.u.println((u[i]==null)?s:u[i]);}}

哦,请不要恨我,这是我的第一次。我找不到任何常见问题解答/简介,所以希望我的发帖格式还可以。不知道人们对字符计数的重视程度。...代码的普通版本-多余的是换行符/空格(1313个字符):

public class DisplayNote
{
  public static void main(String[] args)
  {
    char[] z=args[0].toCharArray();
    char[] y=new char[3];
    y[0]=('H'==z[0]||'L'==z[0])?z[0]:'N';
    int o=(y[0]=='N')?0:1;
    y[1]=z[o++];
    y[2]=z.length>o?z[o]:'!';

    int noteValue=y[1]<'C'?((int) (y[1] - 'A')) + 6:((int) (y[1] - 'C')) + 1;
    noteValue=(y[0]=='N')?noteValue+7:(y[0]=='H'?noteValue+14:noteValue);
    String s="     ";
    String b=" --- ";
    String[] out=new String[22];
    for (int i=1;i<=21;i+=2){out[i]=s;}
    for (int i=10;i<=18;i+=2){out[i]="-----";}
    out[20]=noteValue>19?b:s;
    out[2]=noteValue<3?b:s;
    out[4]=noteValue<5?b:s;
    out[6]=noteValue<7?b:s;
    out[8]=noteValue<9?b:s;

    char c=out[noteValue].charAt(0);
    char e=out[noteValue].charAt(1);
    char[] h=new char[]{c,y[2]=='!'?e:y[2],'O',e,c};
    out[noteValue]=new String(h);
    for (int i=0;i<22;i++)
    {
      if (noteValue<14&&i-noteValue<4&&i>noteValue)
        out[i]=out[i]!=null?out[i].substring(0,3)+"|"+out[i].charAt(4):s;
      else if (noteValue>13&&noteValue-i<4&&noteValue>i)
        out[i]=out[i]!=null?out[i].substring(0,3)+"|"+out[i].charAt(4):s;        
    }

    for (int i=21;i>=0;i--)
      if (!(i>noteValue&&i>18||i<noteValue&&i<10))
        System.out.println((out[i]==null)?s:out[i]);
  }
}

我看到大量不必要的空格(尤其是在分号后以及运算符,方括号和括号中)和长变量名(如args)。
门把手

在字符计数提交中:921个字符,所有空格都消失了:P
Will_61

到处都是空白的第二个提交内容是让人们阅读代码,正如我所说的那样,这是我第一次来,所以不确定我们是否打算将1个提交内容和1个您尝试减少字符数限制的地方保留……还是什么?
2014年

没有; 我看到那个版本中有大量无用的空格。例如,分号之后的空格,空格的运营商,空格后[],加上括号等空间
门把手

现在将其全部删除(我认为),谢谢:)
Will_61 2014年

1

哈斯克尔377C

import Data.Char
(<.)=elem
n(c:r)|elem c"HL"=let(s,a)=n r in(s+case c of 'H'->7;_-> -7,a)|1<2=(mod(ord c-67)7-2,case r of[]->' ';[x]->x)
r(s,a)y x=c where d|s>4= -1|1<2=1;c|x<.[0,4]&&(y<0||y>8)=' '|x==2&&y==s='o'|y==s&&x==1&&' '/=a=a|x==2+d&&y<.[s+k*d|k<-[1..3]]='|'|1<2="- "!!mod y 2
g p@(s,a)=unlines$[map(r p y)[0..4]|y<-reverse[min 0 s..max 8 s]]
main=getLine>>=putStr.g.n

非高尔夫版本:

import Data.Char

fromName ('H':s) = let (step, alter) = fromName s in ((step + 7), alter)
fromName ('L':s) = let (step, alter) = fromName s in ((step - 7), alter)
fromName (x:s) = (mod (ord x - 67) 7 - 2, if null s then ' ' else head s)

renderChar :: (Int, Char) -> Int -> Int -> Char
renderChar (step, alter) y x = let
    dir = if step >  4 then -1 else 1
    normal = "- "!!mod y 2
    stemYs = [step + k * dir | k <- [1..3]]
    c | elem x [0,4] && not(elem y [0,2,4,6,8]) = ' '
      | x == 2 && y == step = 'o'
      | y == step && x == 1 && alter /= ' ' = alter
      | elem y stemYs && x == 2 + dir = '|'
      | otherwise = normal
  in c

render :: (Int, Char)-> String
render (step, alter) = unlines [map (renderChar (step, alter) y) [0..4] | y <- ys] 
  where
    ys = reverse [min 0 step .. max 8 step]

main = getLine >>= (putStr.render.fromName)

0

Literate CoffeeScript- 497527个字符

我敢肯定有更好的方法来构建网格,但是我不知道。

一个高尔夫助手。

_=(q)->->q.split ""

AC专业规模和人员。

s=_("CDEFGAB")()
l=_ "-----"
e=_ "     "
g=_ " --- "
t=->
  o=[e(),l(),e(),l(),e(),l(),e(),l(),e(),l(),e(),g(),e()]
  o.unshift e(),g() for [0..3]
  o

我们的符号功能将采用音符的字符串表示形式。

f=(i)->
  o=1
  m=t()

首先,我们将确定八度。

  if /L|H/.test i[0]
    if i[0]=="L" then o=0 else o=2
    i=i[1..]

然后注意和偶然。要爱解构任务。

  [n,a]=i

让我们将音符和八度转换为索引并绘制音符。

  x=7*o+s.indexOf n

  m[x][1]=a if a
  m[x][2]='O'

现在,我们将只裁减所需的人员。

  j=9
  k=17
  if x>17
    k=x
  else if x<9
    j=x
  u=x-j
  m=m[j..k]

和音符干。

  if x<13
    m[x][3]='|' for x in [u+3...u]
  else
    m[x][1]='|' for x in [u-3...u]

现在让我们输出结果。

  m.map((p)->p.join '').reverse().join '\n'

最后,我们将导出该功能以进行控制台测试。这些字符不计入总数。

module.exports = f

仔细看,似乎我在重构音符词干时搞砸了,因此此刻它会产生非法输出。
benchand

我修复了它,但它增加了30个字符:-/
沙发和

0

C,325 304

现在多亏@ace,缩短了21个字节!

i;j;c;n;main(t){char
x[133];for(i;i<132;i++){x[i]="-----\n     \n"[i%12];if((i<18||i>77)&&!((i%12)&11))x[i]=32;}for(;!n;){c=getchar();if(c>71)t=c^72?2:0;else
n=7*t+7-(c-4)%7;}x[i=n*6+2]=79;if((c=getchar())>32)x[i-1]=c;for(t=0,j=n<9?i+5:i-17;t<3;t++,j+=6)x[j]='|';x[n<13?77:n*6+5]=0;puts(x+(n>4?24:n*6));}

输出:

./a.out
HBb
 bO  
 |-- 
 |   
-|---

-----

-----

-----

-----


./a.out
LG#
-----

-----

-----

-----

-----

 --| 
   | 
 --| 
 #O  

全局变量默认情况下初始化为零,因此您不需要初始化n,可以i=0在第一个for循环中将其删除。
user12205 2014年

同样,在第一个if语句中,((i%12)&11)==0可以替换为!((i%12)&11)
user12205 2014年

最后,?:优先级比^和低<,因此您可以删除之前的条件的括号?。并且您可以替换printf("%s",puts(
user12205 2014年

0

JavaScript的390 388

我必须承认这是一个挑战,我敢肯定有办法进一步减少这种情况...我愿意接受建议...

第一次迭代

C=(a,x,o,c)=>{a[x]=a[x].substr(0,o)+c+a[x].substr(o+1)};l=7;s=[];for(i=21;i--;)s[i]="    ";for(j=1;19>j;j+=2)s[j]=" ---";for(k=3;12>k;k+=2)s[k]="-----";~(p="HL".indexOf((n=prompt())[i=0]))&&(l=14*p,i++);l+=(73-n.charCodeAt(i))%7;C(s,l,2,"O");m=n[n.length-1];"#"!=m&   "b"!=m||C(s,l,1,m);o=7<l?3:1;for(z=0;3>z;C(s,t=l-2*o+3+z++,o,"|"));S=s.splice(3<=l?3:l,11>=l?11:l);console.log(S.join("\n"))

第二次迭代(使用n.slice(-1)代替n[n.length-1]),将2字节剃须

C=(a,x,o,c)=>{a[x]=a[x].substr(0,o)+c+a[x].substr(o+1)};l=7;s=[];for(i=21;i--;)s[i]="    ";for(j=1;19>j;j+=2)s[j]=" ---";for(k=3;12>k;k+=2)s[k]="-----";~(p="HL".indexOf((n=prompt())[i=0]))&&(l=14*p,i++);l+=(73-n.charCodeAt(i))%7;C(s,l,2,"O");m=n.slice(-1);"#"!=m& "b"!=m||C(s,l,1,m);o=7<l?3:1;for(z=0;3>z;C(s,t=l-2*o+3+z++,o,"|"));S=s.splice(3<=l?3:l,11>=l?11:l);console.log(S.join("\n"))

非高尔夫版本:

function C(a,x,o,c){
    a[x]=a[x].substr(0,o)+c+a[x].substr(o+1);
}
l=7;s=[];
for(i=21;i--;){
    s[i]="    ";
}
for(j=1;19>j;j+=2){
    s[j]=" ---";
}
for(k=3;12>k;k+=2){
    s[k]="-----";
}
i=0;n=prompt();
p="HL".indexOf(n[i]);
if(p>=0){
    l=14*p;i++;
}
l+=(73-n.charCodeAt(i))%7;
C(s,l,2,"O");
m=n.slice(-1);
if((m=="#")||m=="b"){
    C(s,l,1,m);
}
o=7<l?3:1;
for(z=0;3>z;z++){
    C(s,t=l-2*o+3+z,o,"|");
}
F=Math.min(3,l);
L=Math.max(11,l);
S=s.splice(F,L);
console.log(S.join("\n"));

您能添加一个非高尔夫版本(可读)吗?
Martin Ender 2014年

@ m.buettner完成...我希望它能帮助您更好地了解我的所作所为:)
WallyWest 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.