首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读时间线

读时间线
EN

Code Golf用户
提问于 2016-02-22 20:44:42
回答 5查看 278关注 0票数 10

画一个时间线的启发。

给定事件的时间线,输出每个事件的日期。

时间线将在表格中给出。

代码语言:javascript
复制
    2000
--AF-C-------E--D---B--

其中第一行显示一个已知的时间点。已知年份总是低于已知年份的第一个数字的字符。

你可以假设:

  • 在时间线本身上,每个字符代表一年。
  • 总会有至少一个事件
  • 事情不一定要井井有条
  • 您可以假设A和最远的字符之间的每个字符都存在。
  • 最多有26项活动。
  • 已知的点将不会在右边有任何填充。
  • 在已知点和输出中都可以有负数。
  • 您不必处理大于2^32的数字。
  • 您不必处理大于2^8的范围。
  • 您可以将输入作为小写字母而不是大写字母。

您应该编写一个程序,该程序采用这种形式的时间线,并按顺序输出关键日期(A、B、C、D.)

您可以以方便的形式输出,但必须以给定的格式输入。

测试用例:

代码语言:javascript
复制
    2000
--AF-C-------E--D---B--
[1998, 2016, 2001, 2012, 2009, 1999]

     10
--C-AB--D
[9, 10, 7, 13]

     0
--ABCDEFG--
[-3, -2, -1, 0, 1, 2, 3]

          5
--ABCDEFG--
[-3, -2, -1, 0, 1, 2, 3]
EN

回答 5

Code Golf用户

回答已采纳

发布于 2016-02-29 07:57:26

Pyth,16字节

将输入作为小写字母,而不是大写字母。

代码语言:javascript
复制
VS@GJw+-sz/zdxJN
票数 1
EN

Code Golf用户

发布于 2016-02-22 21:33:03

JavaScript (ES6),72

代码语言:javascript
复制
(a,b,r=[])=>[...b].map((x,i)=>r[parseInt(x,36)-10]=+a+i-a.search`\\d`)&&r

测试

代码语言:javascript
复制
f=(a,b,r=[])=>[...b].map((x,i)=>r[parseInt(x,36)-10]=+a+i-a.search`\\d`)&&r

console.log=x=>O.textContent+=x+'\n'

;[['    2000','--AF-C-------E--D---B--'],
['     10','--C-AB--D'],
['     0','--ABCDEFG--'],
['          5','--ABCDEFG--']]
.forEach(t=>{
  var a=t[0],b=t[1],r=f(a,b)
  console.log(a+'\n'+b+'\n'+r+'\n')
})  
代码语言:javascript
复制
<pre id=O></pre>
票数 1
EN

Code Golf用户

发布于 2016-02-22 20:52:21

Pyth,22字节

代码语言:javascript
复制
V+r\AJeSKwJ+xKN-izT/zd

不,我在发布挑战之前没有写过这篇文章。

解释:

代码语言:javascript
复制
                       - autoassign z = input()
 +r\AJeSKwJ            -  create range of letters
        Kw             -      autoassign K = input()
      eS               -     sorted(K)[-1] (get the biggest character)
     J                 -    autoassign J = ^
  r\A                  -   range("A", ^)
 +        J            -  ^ + J
V                      - for N in ^: V
               -izT/zd - Get the number at the start
                izT    -   int(z, 10)
               -       -  ^-V
                   /zd -   z.count(" ")
           +           - V+^
            xKN        -  K.index(N)

在这里试试

票数 0
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/73860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档