首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >字典自比较码

字典自比较码
EN

Code Golf用户
提问于 2022-04-19 16:16:32
回答 4查看 1.3K关注 0票数 13

这是一个与奎因相关的编写最短的自识别程序( quine变体)挑战

编写一个函数或一个完整的程序,按字典顺序比较它的源代码和输入,即输出您选择的三个不同的值,说明input / source code是大的、等于的还是小于source code / input的。

Specifications

词典顺序是字典的字母顺序对有序集维基百科元素序列的推广。

简而言之,它就像字典一样工作:

确定字符串A是否大于字符串B

  • 我们比较每个第一个字符的顺序(从左边).,具有较大顺序元素的字符串更大。
  • 如果每个字符的第一个字符相等,我们比较第二个字符,以此类推。
  • 如果一个字符串结束,那么该字符串就更小。
  • 如果A=B,它们是相等的。

有序集是您选择的语言的自然字符编码,您的提交必须正确地使用它。

例如,UTF或ASCII。

示例

为了清晰和简单,我们使用更少、更多的Eq和ASCII作为字母表。

资料来源:"A“

投入:"B“

输出:更大(输入<=>源)

资料来源:"a_X“

输入:"A_x“

输出:更大(源<=>输入)

资料来源:"A,X“

输入:"A,x“

输出:减(源<=>输入)

资料来源:“#*”

投入:“”

输出:更大(源<=>输入)

资料来源:"x!y“

输入:"x!y“

输出: Eq (源<=>输入)

规则

  • 适用标准的奎因规则,特别是不允许读取您自己的源代码。
  • 0长度的答案是不允许的。
  • 输入:任何方便格式的字符序列(字符串、列表或字符数组、代码点)。您可以处理空输入,但它不是必需的。
  • 输出:您选择的三个不同的值意味着不相等,greater.您可以自由选择判断输入是<=>还是<=>而不是输入,只要保持一致并指定它。
  • 这是密码-高尔夫,所有的规则都适用。

沙盒

EN

回答 4

Code Golf用户

发布于 2022-04-20 01:42:21

帕里/GP,31字节

代码语言:javascript
代码运行次数:0
运行
复制
f=(a)->if(a<s=Str("f="f),2,s<a)

在网上试试!

如果输入大于代码,则输出1;如果输入大于代码,则输出0,否则输出2

帕里/GP,欺骗,28字节

代码语言:javascript
代码运行次数:0
运行
复制
(a)->if(a<s=Str(self),2,s<a)

在网上试试!

票数 2
EN

Code Golf用户

发布于 2022-04-20 11:57:18

红宝石,85字节

代码语言:javascript
代码运行次数:0
运行
复制
->a{z,m,w='->a{z,m,w=',',',';a<=>[z,z,m,m,m,w,w]*39.chr}';a<=>[z,z,m,m,m,w,w]*39.chr}

在网上试试!

解释:

我知道,我不太喜欢。

我可以找到链接问题的答案,将'==‘替换为'<=>’,用29个字节,但我想尝试一些不同的东西,并选择不使用eval

有很大的改进空间,但我喜欢它的结果。

票数 2
EN

Code Golf用户

发布于 2022-04-21 01:43:20

JavaScript,23字节

代码语言:javascript
代码运行次数:0
运行
复制
f=s=>s<(F='f='+f)?0:F<s

在网上试试!

如果输入小于源,则输出0,如果输入小于源,则输出false表示相等,输出true用于大于。

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

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

复制
相关文章

相似问题

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