首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >冰箱磁铁替代

冰箱磁铁替代
EN

Code Golf用户
提问于 2018-05-15 07:15:33
回答 4查看 3.9K关注 0票数 29

在用冰箱磁铁写邮件时,你经常会发现自己用1代替I。在这个挑战中,您的目标是了解是否可以使用另一条消息的字母来编写消息。允许的替换是:

代码语言:javascript
运行
复制
A = 4
B = 8
C = U
E = M = W = 3
G = 6 = 9
I = 1
L = 7
N = Z
O = 0
R = 2
S = 5

例如,信息CIRCA 333可以被重新排列为拼写ICE CREAM,其中前两个3s被旋转180度,使两个Es,而最后一个3逆时针旋转90度,形成M。白色空间可以包含在信息中,但它们不应该在您的解决方案中考虑,因为它们是通过在冰箱上放置磁铁来实现的。

输入

两个字符串(或字符数组)。所有消息都将与^[A-Z0-9 ]+$匹配

输出

如果两个输入字符串是彼此的有效重排,则为真,否则为falsey。

示例

代码语言:javascript
运行
复制
["CIRCA 333", "ICE CREAM"] => true
["DCLV 00133", "I LOVE CODE"] => true
["WE ARE EMISSARIES", "33   423    3315542135"] => true
["WE WANT ICE CREAM", "MET CIRCA 334 MEN"] => true
["I HAVE ICE CREAM", "HAVE 2 ICE CREAMS"] => false

更详细的示例

这些都是映射到另一个单词的15+字母单词。有些是微不足道的替换,但我包括了我发现的所有东西。

代码语言:javascript
运行
复制
["ANTHROPOMORPHISE","ANTHROPOMORPHISM"]
["ANTIPHILOSOPHIES","ANTIPHILOSOPHISM"]
["CIRCUMSTANTIALLY","ULTRAMASCULINITY"]
["DECENTRALIZATION","DENEUTRALIZATION"]
["DIMETHYLNITROSAMINE","THREEDIMENSIONALITY"]
["INSTITUTIONALISE","INSTITUTIONALISM"]
["INTERCRYSTALLINE","INTERCRYSTALLIZE"]
["INTERNATIONALISE","INTERNATIONALISM"]
["OVERCENTRALIZATION","OVERNEUTRALIZATION"]
["OVERCENTRALIZING","OVERNEUTRALIZING"]
["PREMILLENNIALISE","PREMILLENNIALISM"]
["TRANSCENDENTALIZE","TRANSCENDENTALIZM"]

因为这是一个代码高尔夫挑战,最短的解决方案获胜!我将接受最短的解决方案,在7天内,从张贴。高尔夫快乐!

样品溶液,非金的

相关

编辑:在替换中出错,将G = 66 = 9作为单独的替换,将它们合并为一个。

EN

回答 4

Code Golf用户

发布于 2018-05-15 18:56:39

Python 2,108个字节

代码语言:javascript
运行
复制
lambda a,b:g(a)==g(b)
g=lambda s:sorted('85930A4614012B3C4D5EF6378GH9AI2J3KL7'[int(c,36)]for c in s if'!'<c)

在网上试试!

共有23个等价类字符。使用36个字符字符串'85930A4614012B3C4D5EF6378GH9AI2J3KL7',我们将每个字符映射到其等效类(忽略空格),然后对结果数组进行排序。两个字符串是等价的当且仅当结果列表相等。

票数 5
EN

Code Golf用户

发布于 2018-05-15 14:33:09

Perl 6,55字节

代码语言:javascript
运行
复制
{[eq] .map:{sort TR/0..9UZMW/OIREASGLBGCNEE/~~m:g/\S/}}

在网上试试!

适用于任意数目的字符串。

票数 2
EN

Code Golf用户

发布于 2018-05-15 15:07:06

Python 2,111个字节

代码语言:javascript
运行
复制
lambda*t:2>len({`sorted(s.translate(dict(map(None,map(ord,'48UMW36917Z025 '),u'ABCEEEGGILNORS'))))`for s in t})

在网上试试!

116个字节

代码语言:javascript
运行
复制
lambda a,b:g(a)==g(b)
g=lambda s,y='4A8BUCMEWE3E6G9G1I7LZN0O2R5S ':y and g(s.replace(y[0],y[1:2]),y[2:])or sorted(s)

在网上试试!

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

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

复制
相关文章

相似问题

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