使用那不是模因


12

当前,互联网上存在一个模因,该模因包括句子,反义和最后添加n't。例如,I am small变为I am talln't

挑战

为了应对这一挑战,我们将简化此过程:您的任务是检测句子中是否有否定词,并将其替换n't为末尾添加的“正数” 。规则中将说明一些棘手的部分。

规则

  • 您必须将String作为输入,并返回String作为输出
  • 输入将是一个小写的句子,仅包含.,标点符号。
  • 你必须更换任何no <any_word>not <any_word><any_word>n't
  • no/ not必须是一个单词,而不是子字符串:您不必更改任何内容none of those
  • 如果单词已经以a结尾n,则必须替换n't'tno plan成为plan't不是 plann't
  • nonot后面没有任何文字,标点符号或其它no/ not,你有来取代它yesn't
  • 复合词算作一个词。因此,即使no-op包含子字符串no,它也不包含单词 no。因此结果将是,no-op不是 -opn't
  • 您不必担心语法错误。例如,there is no way将结果为there is wayn't
  • 不允许有任何标准漏洞。
  • 这是,所以最短的代码获胜。

有一些示例,即使目前尚不清楚这一挑战。

例子

输入:我喜欢打代码,但我不喜欢简短的程序。这句话有意义吗……当然没有。
输出:我喜欢打代码,但我不喜欢简短的程序。这句话有意义吗……当然不是。

输入:不邀请您。出去。
输出:不邀请您。出去。

输入:我不满意,我没有计划,我也没有枪口
输出:我还不错,我有计划,我没有枪口

输入:哦不,不,我拒绝。
输出:哦,不是,不是拒绝。

输入:哦,不,不,我拒绝。
输出:哦,不是,不是,我拒绝。

输入:我不敢相信,您不能编码高尔夫。
输出:我不敢相信,您不能编码高尔夫。

输入:哦,不...他又做了一次。
输出:哦,不是……他又做了一次。

输入:凯文,不是一个字。所以这不是。
输出:kevin,这不是一个字。所以这不是。

输入:不是每个人都清除
输出:不是每个人都清除

输入:这是不合理的...
输出:这是不合理的...


1
在介绍中,不应该I am small成为I am bign't
RedClover

4
有一点说“输入将只包含。和。”。另一个是指“无操作”。但这包含一个“-”。那么是否允许使用“-”?
递归

应该no n导致nn't还是n't
凯文·克鲁伊森

no n令人讨厌的结果是n't因为“单词” n以结尾n
随机家伙

@Soaku小,高,大,小,大,长,短等都可以互换使用。它并不真正重要的问题的缘故。但是,最合逻辑的反义词就是大。
Yates

Answers:


5

视网膜86 70 65字节

T`-'`L
\bnot?\s+(?!not?\b)(\w+?)n?\b
$1n't
\bnot?\b
yesn't
T`L`-'

-16个字节感谢@Neil
-5个字节,感谢@ovs

在线尝试。

说明:

T`-'`L             # Replace all "-" with "A" and all "'" with "B" to store them

\bnot?             # Then replace the word "no" or "not",
 \s+               #  followed by 1 or more whitespaces,
 (?!not?\b)(\w+?)  #  followed by a word/letter that is not "not" or "no"
 n?\b              #  minus a single trailing "n" if there are any
$1                 # with: the word/letter
 n't               #  appended with "n't"

\bnot?\b           # Then replace any remaining loose "no" or "not"
yesn't             # with "yesn't"

T`L`-'             # And finally replace all "A" with "-" and all "B" with "'" again

我觉得不应该是这样的
死负鼠

@DeadPossum是的,还想着我自己,已经问过OP输入中是否可能“ nn't”。
凯文·克鲁伊森

1
也很奇怪
Dead Possum

1
我想我已经将其压缩到70个字节了
尼尔,

1
L这是的简写形式A-Z,可节省2个字节T`-'`AB,反之亦然。
尼尔

4

Python 2中208个 123 113 146字节

lambda s:re.sub(r"\bnot?\b(?!['-])(\s(?!not?(\b)(?!['-]))([\w'-]+))?",lambda m:(m.group(3)or"yes")+"n't"[(m.group(3)or'')[-1:]=='n':],s)
import re

在线尝试!

由于字尾为n't或,丢失了一堆字节n。要么更短,要么都更长。




1

Japt,72个字节

F=_r"%bnot?%s+(?!not?%b)(%w+?)n?%b|%bnot?%b(?!['-])",@Y=Y||"yes"Y+"n't"}

在线尝试!


对于"yes-no maybe-so",它产生"yes - mayben't - so"
递归

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.