首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找到切分

找到切分
EN

Code Golf用户
提问于 2016-01-15 21:45:15
回答 6查看 1.3K关注 0票数 34

考虑到一个字符串的输入完全由qs代表季度音符和es代表第八个音符组成,那么输出被切分的季度音符的指数。

切分是复杂的,但是为了这个挑战的目的,我们对“切分”的定义将非常简单:从“off- but”-that开始的四分之一音符是,在n/4时间中计算为“和”的节拍。

这也可以被定义为任何季度音符,其前面有一个奇数的第八个音符。例如,下面标记为*的注释被认为是切分的,并显示了它们的索引:

代码语言:javascript
复制
eqqeqqeqqe
 **    **
 12    78
Output: 1 2 7 8

输入总是由4/4次(四分之一音符是度量的四分之一,第八个音符是度量值的八分之一)组成的。(输入也不会是空的。)输出可以是由不包含数字的任何分隔符分隔的元素的单个字符串,也可以是数组/list/等。如果您愿意,输出可以是基于1的(即第一个索引是1而不是0),也可以是任何数字基(一元、小数点等)。

由于这是密码-高尔夫,以字节为单位的最短代码将获胜。

测试用例:

代码语言:javascript
复制
In                        Out
-----------------------------------------------
eqqqe                     1 2 3
qeqeq                     2
qqqeqqeeeeqeqeqeqqeqqeqq  4 5 10 14 19 20
eeeeeqeeqeeqqqqeqeqeeqe   5 8 11 12 13 14 18 21
qqqq                      <none>
eeeeeeee                  <none>
EN

回答 6

Code Golf用户

发布于 2016-01-15 22:23:11

Ruby,46岁,

代码语言:javascript
复制
i=e=0
gets.bytes{|n|e^=n
e&4|n>114&&p(i)
i+=1}

输入到stdin。输出到标准输出,换行符分开。

评论

代码语言:javascript
复制
i=e=0               #i keeps index, e keeps track of 8ths.
gets.bytes{|n|      #iterate through bytes in the input
e^=n                #xor e with input. We're interested in the 4's bit, which is only affected by ascii e, not ascii q
e&4|n>114&&p(i)     #e&4 evaluates to 4 or 0. OR with n and if the value is greater than ascii code for q, print index
i+=1}               #increment index
票数 7
EN

Code Golf用户

发布于 2020-09-11 12:14:57

Dyalog经典,12字节

代码语言:javascript
复制
(⍸~×≠\)'e'∘=

在网上试试!

产出1-索引。

解释:

代码语言:javascript
复制
       'e'∘=    ⍝ Map each element to whether it is equal to 'e'
(     )         ⍝ Then apply the train
  ~             ⍝ Not the array into indexes of 'p'
   ×            ⍝ Multiply this by
    ≠\          ⍝ The cumulative reduction by inequality 
 ⍸              ⍝ And get the indexes of the ones in the array
票数 3
EN

Code Golf用户

发布于 2016-01-16 02:45:30

C (函数),65

感谢丹尼斯的额外高尔夫!

代码语言:javascript
复制
i,n;f(char*m){for(i=n=0;*m;i++)*m++&4?++n:n%2?printf("%d ",i):0;}
票数 2
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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