首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加法-字符串中数字的减法

加法-字符串中数字的减法
EN

Code Golf用户
提问于 2018-07-06 04:34:41
回答 7查看 2.7K关注 0票数 14

以一个字符串作为输入,执行字符串中所有数字的加/减,并输出这些操作的和。

规则

  • 字符串中的数字从左到右读取。
  • 如果一个数字(n)是奇数,使用下一个数字(n + n1)执行加法。
  • 如果一个数字(n)是偶数,则用下一个数字(n - n1)执行减法。
  • 如果已到达字符串中的最后一个数字,则使用字符串中的第一个数字执行操作
  • 输出将是所有结果值的总和。
  • 如果字符串中只有一个数字,则自己执行操作(n+n或n+n)。
  • 如果字符串中没有数字,则输出为0。

示例

代码语言:javascript
运行
复制
Input: r5e6o9mm!/3708dvc    
Process: (5+6) + (6-9) + (9+3) + (3+7) + (7+0) + (0-8) + (8-5)
Output: 32

Notes

  • 接受函数或完整程序。
  • 最大输入长度将取决于语言对字符串输入的限制
  • 没有对字符输入的限制,但是只有半宽度的数字才能计算到输出。
  • 最少字节获胜
EN

回答 7

Code Golf用户

发布于 2018-07-06 11:23:10

Python 2,86字节

代码语言:javascript
运行
复制
k=[int(a)for a in input()if'/'<a<':']
print sum(a-(-1)**a*b for a,b in zip(k,k[1:]+k))

在网上试试!

票数 3
EN

Code Golf用户

发布于 2018-07-06 08:45:25

JavaScript (ES6),56字节

将输入作为字符数组。

代码语言:javascript
运行
复制
s=>s.map(c=>1/c?r+=p*(p=c*2&2,n=n||c,c):0,n=p=r=0)|r+p*n

在网上试试!

评论

代码语言:javascript
运行
复制
s =>                     // given the input array s[]
  s.map(c =>             // for each character c in s[]:
    1 / c ?              //   if c is a digit:
      r +=               //     update r:
        p * (            //       p = either 0 or 2 (always 0 on the 1st iteration)
          p = c * 2 & 2, //       p = 0 if c is even, 2 if c is odd
          n = n || c,    //       if n is still equal to 0 (as an integer), set it to c
          c              //       compute p * c
        )                //     add the result to r
    :                    //   else:
      0,                 //     do nothing
    n = p = r = 0        //   n = first digit, p = previous digit, r = result
  )                      // end of map()
  | r + p * n            // compute the last operation with the 1st digit and add it to r
票数 1
EN

Code Golf用户

发布于 2018-07-06 08:57:42

R,58字节

代码语言:javascript
运行
复制
function(x,y=strtoi(x[x%in%0:9]))sum(c(y[-1],y[1])*y%%2*2)

在网上试试!

  • 使用提南(氏)奇偶术
  • -接受字符向量而不是字符串的8个字节
  • -3字节,谢谢@Giuseppe
票数 1
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

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

复制
相关文章

相似问题

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