社区讨论
水一份Ruby的短代码
P1928外星密码参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @lua2iuxd
- 此快照首次捕获于
- 2024/03/28 01:16 2 年前
- 此快照最后确认于
- 2024/03/28 14:08 2 年前
我想应该是最短的,虽然完全没压。
有了Ruby的“正则”表达式,只要把语法写出来,调用几下就做完了。就是这方法的效率其实很低,因为这只是个“正则”表达式,显然没有提供解析到子表达式时的回调,每个子表达式都只能重新解析。甚至于前面的数字也不能直接捕获,否则会被子表达式的捕获所覆盖。
RUBYgrammer = /(\[(\d+(?:[[:alpha:]]|\g<1>)*)\])/
expand = -> text {
text.gsub(grammer) {
n = $2[/\d+/].to_i
expand[$'] * n
}
}
puts expand[gets]
回复
共 1 条回复,欢迎继续交流。
正在加载回复...