首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用最近的非零代替

用最近的非零代替
EN

Code Golf用户
提问于 2019-09-27 15:29:35
回答 2查看 259关注 0票数 5

给出一个非空的十进制数字列表(01,.,9),如果可能的话,用最近的非零替换每个零。

例1:给定

代码语言:javascript
复制
1 4 3 0 0 7 5 5 0 3

输出应该是

代码语言:javascript
复制
1 4 3 3 3 7 5 5 5 3

注意前两个零是如何被3替换的,这是最近的(也就是最右边的)非零。类似地,最后一个零被5替换。

例2:给定

代码语言:javascript
复制
0 0 4 0 0 5 0

输出应该是

代码语言:javascript
复制
0 0 4 4 4 5 5

请注意,替换前两个零是不可能的,因为它们的左边没有一个非零的数字。

附加规则

  • 输入可由任何合理的手段接收。格式与往常一样灵活。特别是,它可以是一个数字列表,一个数组,一个数组的字符串表示,一个数字字符的字符串.
  • 程序或功能在任何编程语言中都是允许的。标准漏洞是禁止的。
  • 以字节为单位的最短代码获胜。

测试用例

输入,然后输出

代码语言:javascript
复制
1 4 3 0 0 7 5 5 0 3
1 4 3 3 3 7 5 5 5 3

0 0 4 0 0 5 0
0 0 4 4 4 5 5

0 0 0
0 0 0

0
0

0 1
0 1

4 2 1 0
4 2 1 1

8 0 0 0 6
8 8 8 8 6
EN

回答 2

Code Golf用户

发布于 2019-09-27 15:39:15

果冻,3字节

代码语言:javascript
复制
ȯ@\

在网上试试!

-2字节(这几乎是一个全新的解决方案,因为5 -> 3字节是40%的扣减,相当于代码lol的一半)

解释

代码语言:javascript
复制
ȯ@\  Main Program
  \  Cumulative Reduce
ȯ@   Logical OR (inverted; basically "right OR left")
票数 1
EN

Code Golf用户

发布于 2019-09-27 15:50:15

05AB1E,5字节

代码语言:javascript
复制
ηε0†θ

在网上试试!

对于输入的每个前缀,过滤0到前面,然后得到它的最后一个数字。是的,前面的过滤器在某种程度上是一个单字节内建().我不认为我会需要它,但我们到了。

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

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

复制
相关文章

相似问题

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