一百个最常用的单词


9

之所以写这个问题,是因为“ Thing Explainer”很有趣,并且给了我一个主意。

编写“使计算机做事的东西”,以读取/获取一组字母,数字和类似的东西"#%|?True / 1如果所有单词都属于该集合,则返回。

如果所有单词都不属于该集合,请返回不属于该集合的单词。


在任何情况下都可以认为本网站是正确的。编写规则是为了遵守该站点上的规范。


例子:

Truthy

如果将第一条水平线上方的整个文本粘贴为输入,则代码应返回真实值。

以下几行应返回真实值(输入之间用分隔###

This returns "Hello, World!"
###
tHiS rEtUrNs TrUe...
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
This set of stuff "#!^{>7( must return true

虚假的

在以下示例中,输入和输出用分隔***。不同的测试用例用分隔###

This code doesn't return "Hello, World!"
***
code
###
tHiS rEtUrN"s false...
***
s
false

更详细的规则:

  • 您可以使用来测试您的代码。
  • 除代码外,非字母被代码解释为空格'wasn't'。返回的带有撇号的单词true包含在列表中
    • 例如:foo123bar应该返回foobar,因为它们不是列表的一部分,并且123可以解释为空格
  • 输入将仅包含可打印的ASCII码点[10,32-126]。
  • 单词可以包含大小写混合的字母。请参阅第二个测试用例。
  • 单词表
    • 应该作为输入(STDIN,函数参数或等效参数)
    • 可以修改(单词可以用换行符,逗号等分隔,并且您可以对列表进行排序)
    • 请注意,您不能使用列表(不完全相同)
  • 输出可以是您喜欢的任何格式
  • 输出可以是大写,小写或大小写混合(可选)
  • 输出中不得有符号

根据记录,乔纳森·艾伦(Jonathan Allan)发现了一个奇怪的特殊情况:例如,在XKCD上的实现实际上会忽略撇号之后的所有字母,直到下一个非[AZ] [az] [']为止find's found,并且find'qazxswedc found'两者均不返回任何内容,而find'qazx.swedc found返回swedc

您可以选择是否不退货find'qazxswedc found'或退货qazxswedc。返回qazx, swedcfind'qazx.swedc也行。



我不太肯定这是一个骗子。您的挑战略有不同,因为您需要返回非简单的单词。而且,根据您的喜好,您实际上拥有一种以日常英语书写的常规规范。codegolf.stackexchange.com/questions/53323/…–
詹姆斯

对于无法表示返回类型为Boolean或的静态类型语言,是否可以Array<String>返回空数组/列表?
CAD97

@ CAD97的所有单词都很简单的情况?您可以选择显示真实值的方式,它可以是整数/字符串1。空输出是不允许的。
Stewie Griffin

我对find'qazxswedc输入规则的新解释感到困惑。我们还是不应该在撇号上分开?例如,isn'treturns true(在列表中),但是isnreturn isn,因为它不在列表中。根据这种逻辑,我选择了“不要在撇号上分开”,因此find'qazxswedc found返回find'qazxswedc
AdmBorkBork

Answers:


2

PowerShell v3 +,105 92字节

param($a,$b)$x=@();-split($b-replace"[^a-zA-Z']",' ')|%{if($_-notin$a){$x+=$_}};($x,1)[!$x]

接受简单的像$a和一样的词$b。做帮手$x。抓住每个单词,$b除掉所有不好的字母,然后检查每个单词|{...}。如果该词不在$a,则将其添加到中$x。最后,我们选择$x1不选择$x。发出了words1

尝试一些话

PS C:\Tools\Scripts\golfing> ('This returns "Hello, World!"','tHiS rEtUrNs TrUe...','Thing Explainer is a book written by a man.
The man writes books with simple words.','This set of stuff "¤!^¤>7\ must return true'|%{"$_";(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This returns "Hello, World!"
###
1
###
tHiS rEtUrNs TrUe...
###
1
###
Thing Explainer is a book written by a man.
The man writes books with simple words.
###
1
###
This set of stuff "¤!^¤>7\ must return true
###
1

PS C:\Tools\Scripts\golfing> ("This code doesn't returns Hello, World!",'tHiS rEtUrN"s false...'|%{"$_`n***`n"+(.\ten-hundred-most-common-words.ps1 (gc .\ten-hundred-most-common-words.txt) $_)})-join"`n###`n"
This code doesn't returns Hello, World!
***
code
###
tHiS rEtUrN"s false...
***
s false

2

Python,93个字节

import re
lambda w,s:[w for w in re.sub("[^'\w]|\d|_",' ',w).split()if w.lower()not in s]or 1

所有测试用例都在ideone上

列表的预处理是拆分 |并放在一个中set(如果允许预排序,我认为这很好)。输入单词as w,设置为as s

如果这是不允许这成为98个字节not in s成为not in set(s)

我们可以对其进行预处理,使其也具有大写和小写字符的所有排列,并节省8个字节,但是我认为这样做可能会太过分了(那将是一个巨大的集合)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.