首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从基-n号解压缩的ASCII技术

从基-n号解压缩的ASCII技术
EN

Code Golf用户
提问于 2018-06-12 11:39:18
回答 21查看 3.6K关注 0票数 24

这是受魔法八字骨灰瓮的一个C1的启发。

给定两个参数,一个正整数和一个字符串/字符列表:

  1. 将数字转换为基-n,其中n是字符串的长度。
  2. 对于每个字符,将基-n号中该字符的索引的每个外观替换为该字符。
  3. 打印或返回新字符串。

示例:

代码语言:javascript
运行
复制
Input:
2740, ["|","_"]
2740 -> 101010110100 in base 2
     -> Replace 0s with "|" and 1s with "_"
Output: _|_|_|__|_||

Input:
698911, ["c","h","a","o"]
698911 ->  2222220133 in base 4
       ->  Replace 0s with "c", 1s with "h", 2s with "a", and 3s with "o"
Output -> "aaaaaachoo"

Input:
1928149325670647244912100789213626616560861130859431492905908574660758972167966, [" ","\n","|","_","-"]
Output:
    __   __    
   |  |_|  |   
___|       |___
-   -   -   -  
 - - - - - - - 
- - - - - - - -
_______________

Input: 3446503265645381015412, [':', '\n', '.', '_', '=', ' ', ')', '(', ',']
Output:
_===_
(.,.)
( : )
( : )

规则:

  • IO是灵活的
    • 只要输入之间保持一致,就可以在任何基中取数字。
    • 但是,字符列表必须是0索引,其中0是第一个字符,n-1是最后一个字符。

  • 可能的字符可以是任何可打印的ASCII,以及空格(如制表符和换行符)。
  • 给定的字符列表将在包含2-10的范围内有一个长度。也就是说,最小的基数是二进制,最大的是十进制(这里没有烦人的字母)。
  • 标准漏洞被禁止
  • 即使您的语言无法处理更大的测试用例,也可以随意回答。

由于这是密码-高尔夫,每种语言的最短代码将获胜。(我知道你们所有打高尔夫球的语言都准备好了一个字节内建;)

EN

回答 21

Code Golf用户

发布于 2018-06-12 13:29:01

Python 3,49字节

还不能发表评论,所以我发布了适合Python3.5的Python 2答案。

代码语言:javascript
运行
复制
f=lambda n,s:n and f(n//len(s),s)+s[n%len(s)]or''
票数 7
EN

Code Golf用户

发布于 2018-06-12 12:12:01

Japt,2字节

可以将第二个输入作为数组或字符串。在最后两个测试用例中失败,因为这些数字超过了JavaScript的最大整数。将s替换为ì,以输出一个字符数组。

代码语言:javascript
运行
复制
sV

试试看

票数 5
EN

Code Golf用户

发布于 2018-06-12 13:01:00

马蒂尔,2字节

代码语言:javascript
运行
复制
YA

在网上试试!

输入是一个数字和一个字符串。

由于浮点精度,超过2^53的数字失败.

解释

YA知道什么,一个内置的(具有指定目标符号的基转换)。

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

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

复制
相关文章

相似问题

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