ใช้สิ่งที่ไม่ดี


12

ขณะนี้มี meme บนอินเทอร์เน็ตที่ประกอบด้วยการประโยคย้อนกลับความหมายและเพิ่มn'tในตอนท้าย ตัวอย่างเช่นI am smallกลายเป็นI am talln't

ท้าทาย

เพื่อประโยชน์ในการท้าทายเราจะทำสิ่งนี้ให้ง่ายขึ้น: งานของคุณคือการตรวจสอบเมื่อใดก็ตามที่มีการปฏิเสธในประโยคและแทนที่ด้วยคำว่า 'บวก' ที่n'tเพิ่มเข้ามาในตอนท้าย จะมีบางส่วนหากินที่จะอธิบายในกฎ

กฎระเบียบ

  • คุณต้องใช้เชือกเป็นการป้อนข้อมูลและส่งกลับสตริงเป็นเอาท์พุท
  • ข้อมูลที่ป้อนจะเป็นประโยคตัวพิมพ์เล็กโดยมีเครื่องหมายวรรคตอนเท่านั้น.และ,เป็น
  • คุณต้องเปลี่ยนใด ๆno <any_word>หรือกับnot <any_word><any_word>n't
  • no/ notต้องเป็นคำศัพท์และไม่ใช่ซับสตริง: คุณไม่จำเป็นต้องเปลี่ยนแปลงอะไรเลยnone of those
  • หากคำนั้นจบด้วย a nคุณต้องแทนที่n'tด้วย't: no planกลายเป็นplan'tและไม่ plann't
  • เมื่อnoหรือnotไม่ปฏิบัติตามด้วยคำพูดใด ๆ เครื่องหมายวรรคตอนหรืออื่นno/ คุณต้องแทนที่ด้วยnotyesn't
  • คำประสมนับเป็นหนึ่งคำ ดังนั้นแม้ว่าno-opประกอบด้วยอักขระย่อยnoก็ไม่ได้มีคำว่าไม่มี ดังนั้นผลที่จะได้รับno-opและไม่ได้ -opn't
  • คุณไม่ต้องกังวลเกี่ยวกับข้อผิดพลาดทางไวยากรณ์ ยกตัวอย่างเช่นจะส่งผลให้there is no waythere is wayn't
  • ไม่อนุญาตช่องโหว่มาตรฐาน
  • นี่คือดังนั้นรหัสที่สั้นที่สุดชนะ

มีบางตัวอย่างแม้ว่าความท้าทายนี้จะดูไม่ชัดเจนในตอนนี้

ตัวอย่าง

อินพุต:ฉันชอบ codegolfing แต่ฉันไม่ชอบโปรแกรมสั้น ๆ ประโยคนี้สมเหตุสมผลหรือไม่ ... แน่นอนไม่
ผลลัพธ์:ฉันชอบ codegolfing แต่ฉันไม่ใช่โปรแกรมสั้น ๆ ประโยคนี้สมเหตุสมผลหรือไม่ ... แน่นอนใช่

อินพุต : คุณไม่ได้รับเชิญ ออกไป.
ผลลัพธ์ : คุณไม่ได้รับเชิญ ออกไป.

อินพุต : ฉันไม่โอเคฉันไม่มีแผนและฉันไม่มีกันน์
เอาท์พุท : ฉันไม่เป็นไรฉันไม่มีแผนและไม่มีปืน

อินพุต : โอ้ไม่ไม่ไม่ฉันปฏิเสธ
เอาท์พุท : ใช่ไม่ใช่ไม่ใช่ไม่ปฏิเสธ

อินพุต : โอ้ไม่ไม่ไม่ฉันปฏิเสธ
เอาท์พุท : โอ้ใช่ไม่ใช่ใช่ไม่ใช่ใช่ไม่ใช่ฉันปฏิเสธ

อินพุต : ฉันไม่อยากเชื่อสิ่งนี้คุณไม่สามารถ codegolf
เอาท์พุท : ฉันไม่อยากเชื่อสิ่งนี้คุณไม่สามารถ codegolf

อินพุท : โอ้ไม่ ... เขาทำมันอีกครั้ง
เอาท์พุท : ใช่แล้วไม่ใช่ ... เขาทำมันอีกครั้ง

อินพุต : ไม่ใช่คำ, เควิน ดังนั้นนี่ไม่ใช่ไม่ใช่
เอาท์พุท : ไม่เป็นคำไม่ได้เควิน ดังนั้นนี่ไม่ใช่

อินพุต : ไม่ใช่สิ่งที่ไม่เหมาะสำหรับทุกคนหรือไม่
เอาต์พุต : สิ่งนี้ไม่ได้มีไว้สำหรับทุกคน

อินพุท : มันไม่รู้สึก ...
เอาท์พุท : นี่มันไม่รู้สึก ...


1
ในการแนะนำไม่ควรI am smallกลายเป็นI am bign't?
RedClover

4
จุดหนึ่งกล่าวว่า "อินพุตจะเป็น [... ] เท่านั้นโดยมีเท่านั้นและ" อีกอันหมายถึง "ไม่มีการใช้งาน" แต่นั่นมี "-" ดังนั้น "-" อนุญาตหรือไม่
เรียกซ้ำ

ควรจะno nส่งผลให้เกิดnn'tหรือn't?
Kevin Cruijssen

no nผล sould ในn'tเพราะ 'คำว่า' จบด้วยn n
คนที่แต่งตัวประหลาดแบบสุ่ม

@ โซกุขนาดเล็กสูงใหญ่เล็กใหญ่ยาวสั้น ฯลฯ ล้วนใช้แทนกันได้ มันไม่ได้จริงๆเรื่องเพื่อประโยชน์ของคำถาม แต่คำตรงข้ามเชิงตรรกะที่สุดสำหรับขนาดเล็กจะใหญ่ใช่
Yates

คำตอบ:


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

ฉันคิดว่านี่ไม่ใช่กรณี
Dead Possum

@DeadPossum ใช่คิดเกี่ยวกับตัวเองเพียงแค่และได้ถาม OP แล้วถ้า "ไม่" เป็นไปได้ในการป้อนข้อมูล
Kevin Cruijssen

1
นี่ก็แปลกเช่นกัน
Dead Possum

1
ฉันคิดว่าฉันได้มันลงไป70 ไบต์
Neil

1
Lนี่คือการจดชวเลขสำหรับA-Zบันทึก 2 ไบต์ขึ้นไปT`-'`ABและในทางกลับกัน
Neil

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

ลองออนไลน์!

Lost พวงของไบต์เพราะคำที่ลงท้ายด้วยหรือn't nไม่ว่าจะสั้นหรือยาว แต่การจัดการทั้งสองนั้นนานกว่านั้น





โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.