高尔夫练习:Pyth [关闭]


10

这是在Pyth打高尔夫球时可以使用的技巧和优化的挑战。Pyth高尔夫球手可能会意识到其中涉及的许多技巧。但是,可能会涉及到不熟悉的方法和构造,因此如果遇到困难,请查看Pyth技巧以及Pyth角色参考。解决方案可以在这里进行测试。

目标:有8个问题,每个问题都有一个Pyth代码段供您优化。您的目标是创建等效但更短的对象。参考解决方案总共80个字节。您的目标是尽可能地击败它。

获胜者将参加以最小总字节数解决所有8个问题的提交。Tiebreaker是较早的帖子。

回答:除了总分,请破坏您的整个答案。您打算在提交自己的答案之前不要看别人的答案。

每个提交都应回答每个问题并给出相应的字节数,但是如果无法改进参考实现,请随意使用。

详细说明:如果一定值或输出的问题通话,q平等是需要的,所以1!0是等价的。如果问题要求测试条件是否为真,则条件为真时输出必须为真,如果条件为假则输出为假,但不受此限制。您可能无法将true替换为false,或者将false替换为true。如果问题要求打印某些内容,则除了尾随换行符外,其他任何内容都无法打印。

问题发布以来,所有答案都必须对最近的Pyth提交有效。

问题1:给定Q中的集合,以任何顺序输出包含Q元素的列表。

; 3 bytes
f1Q

问题2:输出列表[1, 1, 0, 0, 1, 1, 0]

; 9 bytes
[J1JZZJJZ

问题3:给定Q中的正整数,请测试Q的所有数字是否均为正(而不是零)。

; 7 bytes
!f!TjQT

问题4:给定z中的字符串,请测试z是否包含引号- "'

; 9 bytes
|}\'z}\"z

问题5:将 Q = 1映射为“赢”,将Q = 0映射为“平局”,将Q = -1映射为“输”。

; 20 bytes
@["Tie""Win""Lose")Q

问题6:打印0123456789

; 6 bytes
sm`dUT

问题7:给定z中的字符串,请计算反转次数。

(索引ij形成反如果i < jz[i] > z[j])。

; 17 bytes
ssmm>@zd@zkrdlzUz

问题8:给定z中的列表,计算重复的相邻元素的数量。

; 9 bytes
lfqFT.:z2

@ user1737909这个答案是正确的。对始终为真的函数进行f1Q过滤Q,因此它将始终输出集合中的每个元素。f输出一个列表,该列表符合该问题的目标。
isaacg

我将这个问题作为离题的话题来结束,因为不允许多部分挑战,而各部分之间没有交互。meta.codegolf.stackexchange.com/a/8464/45941
Martin Ender

Answers:


9

52个字节

问题1:2个字节

    SQ

问题2:5个字节
    jC\f2

问题3:4个字节
    -0`Q
问题4:6个字节
    @z+N\'
问题5:17个字节
    %3>"LTWoiisene"hQ
要么
    @c3"LoseTieWin"hQ
问题6:3个字节
    pMT
问题7:9个字节
    s>R_d.cz2
问题8:6个字节
    sqVztz
将问题4的@xnor解决方案与我的(均为6个字节)结合起来,可以得到一个不错的4个字节的解决方案。因此48个字节是可能的。


您无法将解决方案与xnor的解决方案结合使用,因为xnor的解决方案无效(请参阅我对他的回答的评论)。
orlp

@orlp *除无效内容外,将所有内容合并;-)在我的帖子中添加了解决方案。
雅库布

啊,我现在看到了:)猜猜我比最佳值差6个字节(并且还在计数)。
Orlp

啊!谢谢!还没意识到:)。我将其删除。
2016年

7

54字节

任务1,2字节SQ
任务2,6字节j102 2
任务3,5字节*FjQT
任务4,6字节@z"'\"
任务5,17字节@c3"LoseTieWin"hQ
任务6,4字节jkUT
任务7,7字节s>M.cz2
任务8,7字节sqM.:z2


打得很好:-)
Vedaad Shakib

您对任务4的回答是否有效,因为在fa​​lse上它仅打印空白行?
Maltysen

@Maltysen是的,因为的真实值为""False,因为not ""为True。
orlp

3

58个字节

任务1,2字节SQ
任务2,5字节jC\f2
任务3,6字节!}Z Q
任务4,8字节|}\'z}Nz
任务5,18字节@c"Tie\nWin\nLose"bQ
任务6,4字节jkUT
任务7,9字节lf>FT.cz2
任务8,6字节sqVtzz


我不知道V(尽管我仍然不完全了解,因为您正在对不等长的操作数进行矢量运算),所以我对此感到抱歉,但我确实应该想到C\f= /
orlp

@orlp V自动截断不相等的输入
Maltysen 2015年

3

这篇文章是针对所有答案的最佳解决方案的积累。如果有任何改进,请编辑解决方案和最先找到该解决方案的答复者。

48字节

1. SQ- 2个字节,第一张贴由@orlp
2. jC\f2- 5个字节,第一张贴由@Maltysen
3. -0`Q- 4个字节,第一张贴由@Jakube
4. @z`N- 4个字节,@xnor和@Jakube的混合物,而不是在任何答案呢。
(I没有看到它写入的问题时,要么)
5. @c3"LoseTieWin"hQ- 17个字节,第一通过@orlp张贴
6. pMT- 3个字节,第一张贴由@Jakube
7. s>M.cz2- 7个字节,第一张贴由@orlp
8. sqVtzz- 6个字节,首先由@Maltysen发布


我们是从问题开始才限制使用Pyth版本吗?
Optimizer

1
“自该问题发布以来,所有答案都必须对最近的Pyth提交有效。” 我想听听您的想法。@Optimizer
isaacg 2015年

Pyth不断发展,对吗?(以比其他高尔夫语言快得多的速度)。因此,这个数字(48)很可能在不久的将来轻松跌至40以下。由于这是一个练习挑战,因此理想情况下,您将希望使用最新的Pyth版本进行练习以应对较新的挑战。
Optimizer

2

57个字节

1.(2)SQ排序。
2.(5)jC\f2 转换f为ASCII val,然后以2为底
。3.(5)在数字字符串中/`Q`0计数'0'
4.(5)@z`\'用设置字符串的交集"'"
5.(18)@c"Tie Win Lose"dQ分割列表。我没有切片工作。
6.(4)jkUT加入range(10)。显然会自动转换为字符串。
7.(9)sm>d_d.:z计算大于其反向的子字符串。
8.(9)l@C,zz.:z列表的子列表与列表中的元素对的交集长度。与参考溶液长度相同。


您对#4的解决方案无效。例如,字符串te\\st是误报。
orlp

@orlp用其他更短的解决方案替换它。
xnor
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.