首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析ascii艺术数学!

解析ascii艺术数学!
EN

Code Golf用户
提问于 2020-05-10 09:01:52
回答 2查看 1.8K关注 0票数 20

任务

给定带有ascii艺术运算符和数字的多行字符串,解析表达式!

可能符号

编号:(3x4)

代码语言:javascript
运行
复制
 /
/|
 |
---

___
 _|
|
---

___
 _|
  |
---

| |
|_|
  |
  |

___
|_ 
  |
---

___
|_
| |
---

___
  /
 /
|

___
|_|
| |
---

___
|_|
  |
---

___
| |
| |
---

操作员:(3x3)

代码语言:javascript
运行
复制
 | 
-+-
 |


---


\ /
 x
/ \


 .
---
 .

支架:(1x4)

代码语言:javascript
运行
复制
/
|
|
\

\
|
|
/

输入

带有ascii艺术运算符和数字的多行字符串。测试用例中的示例。

输出

解析表达式的字符串。

测试用例

输入:

代码语言:javascript
运行
复制
/ ___     ___ \     ___
|  _|  |    / |  .   _|
| |   -+-  /  | ---   |
\ ---  |  |   /  .  ---

输出:(2+7)/3

输入:

代码语言:javascript
运行
复制
___      /      ___
|_|     /|  \ / |_ 
  | ---  |   x    |
---     --- / \ ---

输出:9-1*5

规则

  1. 数字永远是一位数。
  2. 因为运算符比数字短一个符号,所以它们被放置一个比数字低的符号,在顶部留下空格。
  3. 所有符号之间都有一列空格。
  4. 这是一个代码-高尔夫挑战,所以最低字节数获胜!
EN

回答 2

Code Golf用户

发布于 2020-05-10 15:48:03

木炭,67字节

代码语言:javascript
运行
复制
⭆⪪⭆θ§αI⭆⟦θηζε⟧÷⊖℅§λκ³²A℅⁺⁴⁰÷⌕”$⌈O⁴εΦa↙M∕³↧FωG↙σ⎇C(|?⊞¦﹪ω←2I0C⁻sⅉ”ι³

在网上试试!链接是详细的代码版本。假设4个输入字符串长度相等(必要时填充空格)。解释:

代码语言:javascript
运行
复制
   θ                                First input
  ⭆                                 Map over characters and join
        ⟦θηζε⟧                      All four inputs as a list
       ⭆                            Map over strings
                  λ                 Inner string
                 §                  Indexed by
                   κ                Outer index
                ℅                   Take the ASCII code
               ⊖                    Decrement
              ÷     ³²              Integer divide by literal `32`
      I                             Cast to integer
    §α                              Index into uppercase alphabet
 ⪪                    A             Split on literal `A`
⭆                                   Map over substrings
                            ⌕...ι   Find their indices in compressed data
                           ÷     ³  Integer divide by 3
                        ⁺⁴⁰         Plus literal `40`
                       ℅            Convert to ASCII
                                    Implicitly print

压缩数据表示文字字符串GAARAATEYKBKAAAKKKAAAKHKRZRXFBDRNZRRYSFNRDRRDBIURRRNRR,其中包含计算结果的模式,并填充As,将它们放置在适当的偏移位置以生成所需的ASCII字符。

票数 2
EN

Code Golf用户

发布于 2020-05-10 16:37:34

JavaScript (Node.js),152个字节

代码语言:javascript
运行
复制
f=(s,i=0,a=s.split`
`,c=a[n=0][i],x=1)=>c?"*3-425()6+9/7081"[c=='/'?6:c=='\\'?7:[x=3,4,5,6,9].map(c=>n+=Buffer(a[c/3|0])[i+c%3]*c)|n%47%16]+f(s,i-~x):''

在网上试试!

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

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

复制
相关文章

相似问题

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