ย้อนกลับความจริง


22

เขียนโปรแกรมหรือฟังก์ชั่นที่:

  1. ใช้เวลาในสตริงจาก stdio หรืออาร์กิวเมนต์
  2. แทนที่ทั้งหมดtrueด้วยfalseและfalseด้วยtrue
  3. ย้อนกลับ แต่ไม่ย้อนกลับtrueและfalse
  4. ส่งคืนหรือพิมพ์ผลลัพธ์

ตัวอย่าง (ด้านซ้ายคืออินพุต):

"true"                     "false"
"2false"                   "true2"
"true is false"            "true si false"
"false,true,undefined"     "denifednu,false,true"
"stressed-false"           "true-desserts"
"falstrue"                 "falseslaf"
"true false true x"        "x false true false"

ช่องโหว่มาตรฐานใช้ นี่คือดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ

ลีดเดอร์บอร์ด


ในขั้นตอนที่ 3 จำเป็นต้องมีการเปลี่ยนเพียงครั้งเดียวหรือควรจะเกิดขึ้นทั้งหมดหรือไม่ เช่นtrue true false falseจะกลายเป็นtrue true false falseหรือtrue eslaf false eurt?
gaborsch

ควรeurtกลายเป็นfalseหรือtrue?
Zereges

@Zereges มันไม่ผิดหรือเป็นจริงก่อนที่มันจะกลับตัวดังนั้น: eurt->true
Hannes Karppila

@HannesKarppila ดังนั้นกฎจะถูกนำไปใช้ในการสั่งซื้อ:1 3 2 4 5
Zereges

3
สิ่งนี้หมายความว่าtrufalse -> trueurtอย่างไร
Adnan

คำตอบ:


12

C # 6, 144 ไบต์

string R(string t)=>string.Concat(new System.Text.RegularExpressions.Regex("true|false").Replace(t,m=>m.Value[0]<'g'?"eurt":"eslaf").Reverse());

โดยจะใช้การแสดงออกปกติเพื่อให้ตรงtrue|falseและถ้ามันตรงกับtrueที่มันจะถูกแทนที่ด้วยมิฉะนั้นโดยeslaf เป็นวิธีที่สั้นกว่าที่จะพูดเพราะค่าที่เป็นไปเพียงเพื่อมีหรือดังนั้นหากรหัสถ่านของถ่านแรกที่มีขนาดเล็กกว่ารหัสถ่านของมันeurtm.Value[0]<'g'm.Value[0]=="false"m.Value"true""false"'g'"false"

รุ่นเก่า 95 ไบต์

falstrueหนึ่งนี้มีข้อผิดพลาดก็ไม่ได้ส่งกลับผลลัพธ์ที่ถูกต้องสำหรับ

string R(string t)=>string.Concat(t.Reverse()).Replace("eurt","false").Replace("eslaf","true");

15
AC # solution ต่ำกว่า 100 bytes? แน่นอนที่สุดวันนั้นก็มาถึงเราแล้ว
Alex A.

@AlexA ฮ่าฮ่าขอบคุณทุกรุ่น 6; P
ProgramFOX

1
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

2
@AlexA ดีด้วยการส่งออกที่ไม่ถูกต้องสำหรับการfalstrueแก้ไขจะไม่ <100 bytes ... :(
ProgramFOX

14
ในขณะที่เศร้าจริง ๆ มันหมายความว่าเราไม่ต้องกังวลเกี่ยวกับการเปิดเผย ข้อบกพร่องของซอฟต์แวร์ได้ช่วยพวกเราทุกคน
Alex A.

7

TeaScript , 36 25 24 ไบต์

xv¡g("eurt|eslaf",#ln>4)   

TeaScript เป็น JavaScript สำหรับเล่นกอล์ฟ

การแก้ไข: บันทึก 11 ไบต์ต้องขอบคุณ @ Vɪʜᴀɴ แก้ไขการป้อนข้อมูลfalstrueและบันทึกเป็นไบต์

รุ่นเก่า (ไม่ถูกต้อง):

xv¡g("eurt",f)g(f.T¡v¡,t)

คำอธิบาย:

x    // Input
 v¡    // Reverse
   g("eurt",    // Global replace "eurt" with "false".
            f)    // f is predefined to false.
              g(f.T¡v¡, // Convert false to string, then reverse.
                       t) // t is predefined to true.

ถ้าคุณใช้lและiแทนtและfคุณสามารถ ommit .s f ถูกกำหนดไว้ล่วงหน้าเพื่อfalseให้คุณสามารถรับ:xv¡g(l="eurt",i=f+¢)g(iv¡,lv¡)
Downgoat

ดียิ่งขึ้นจริงแล้ว:xv¡g("eurt",f)g(f.T¡v¡,t)
Downgoat

@ Vɪʜᴀɴขอบคุณสำหรับความช่วยเหลือ ไม่เห็นว่าในเอกสาร เป็นไปได้ไหมที่จะแทรกอัตโนมัติ(หลังจากวิธีการ กดreplace(/(\.[BcCdeE...])/g,"$1(")ไลค์หรือคล้ายกันหลังจากแทรกช่วงเวลา
intrepidcoder

1
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

แก้ไข @feersum แล้ว ขอบคุณสำหรับการชี้ให้เห็นว่า นั่นเป็นเรื่องยุ่งยาก
intrepidcoder

7

Bash + GNU, 45 38 73 ไบต์

แก้ไข:ทำงานได้ทั้งกับtrufalseและfalstrue

sed s/false/%eurt%/g\;s/true/%eslaf%/g|rev|sed "s/%\(true\|false\)%/\1/g"

รุ่นเก่า 38 ไบต์ (สั้นลงด้วย Digital Trauma):

rev|sed s/eurt/false/g\;s/eslaf/true/g

1
รวมการแสดงออก sed เป็นหนึ่งและลบ "-e" และคำพูด:rev|sed s/eurt/false/g\;s/eslaf/true/g
Digital Trauma

2
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

@feersum จุดดีคงที่ trufalseนอกจากนี้ยังมีการตรวจสอบ
gaborsch

6

JavaScript ES6, 59

เป็นฟังก์ชั่นนิรนาม

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

s=>s.replace(/false|true|./g,x=>s=(x[1]?x<'t':x)+s,s='')&&s

ทดสอบการเรียกใช้ตัวอย่างข้อมูลด้านล่างในเบราว์เซอร์ที่สอดคล้องกับ EcmaScript 6

f=s=>s.replace(/false|true|./g,x=>s=(x[1]?x<'t':x)+s,s='')&&s

//test

console.log=x=>O.innerHTML+=x+'\n'

;[
 ["true","false"]
,["falstrue","falseslaf"]  
,["1false","true1"]
,["true is false","true si false"]
,["false,true,undefined","denifednu,false,true"]
,["stressed-false","true-desserts"]
,["true false true x","x false true false"]
].forEach(t=>console.log(t[0]+' -> '+f(t[0])))
<pre id=O></pre>


มาที่นี่เพื่อโพสต์โซลูชั่น 62 ไบต์ที่น่าทึ่ง ... ค้นพบโซลูชัน 59 ไบต์ที่เหลือเชื่อ +1
ETHproductions

5

Windows รุ่นที่184 213 ไบต์

แก้ไขข้อบกพร่องfalstrue -> falseslafและtrufalse -> trueurt

อาจเป็นหนึ่งในภาษาที่นิยมน้อยกว่า:

setlocal enabledelayedexpansion
set /p Q=
set N=0
:L
call set T=%%Q:~%N%,1%%%
set /a N+=1
if not "%T%" equ "" (
set R=%T%%R%
goto L
)
set R=%R:eurt=false%
set R=%R:eslaf=true%
set R=%R:falstrue=falseslaf%
echo %R%

1
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

@feersum คงมัน :)
Adnan

5

Haskell, 94 ไบต์

ดำเนินการจับคู่รูปแบบบนสตริงอินพุตโดยค้นหา "false" หรือ "true" และต่อท้ายตรงข้ามกับผลลัพธ์ของการใช้ฟังก์ชันบนส่วนที่เหลือของสตริง หากไม่พบจริงหรือเท็จจะใช้การสอบถามซ้ำเพื่อย้อนกลับสตริงในรูปแบบเดียวกัน

f[]=[]
f('t':'r':'u':'e':s)=f s++"false"
f('f':'a':'l':'s':'e':s)=f s++"true"
f(x:s)=f s++[x]

เพิ่มตอนนี้ขออภัยเกี่ยวกับเรื่องนั้น
Craig Roy

ไม่เป็นไร. ดูเหมือนว่าฉันทำผิดพลาดเมื่อพยายามทดสอบ บางทีฉันก็แค่พิมพ์สตริงโดยไม่ต้องจัดการเพื่อใช้ฟังก์ชันกับมัน
feersum

ฉันเชื่อว่าคุณสามารถใช้f[]=[]บรรทัดบนสุดและวางf x=xที่ด้านล่างเพื่อบันทึกไบต์
Michael Klein

4

JavaScript ES6, 95 93 ไบต์

ฟังก์ชันที่ไม่มีชื่อ เพิ่มf=ไปยังจุดเริ่มต้นที่จะใช้มัน ขอบคุณ Ismael! นอกจากนี้สมมติว่าอินพุตไม่มีแท็บ

x=>[...x[r="replace"](/false/g,"\teslaf")[r](/(\t)*true/g,"eurt")[r](/\t/g,"")].reverse().join``

คุณสามารถใช้.replace(/eurt/g,false).replace(/eslaf/g,true)เนื่องจากพวกเขาจะถูกแปลงเป็นสตริง ลองtrue + ''(ควรกลับมา'true')
Ismael Miguel

3
รอ!!! เปลี่ยนfalseกับ!1และกับtrue !0ที่นั่นสั้นลงสองสามไบต์
Ismael Miguel

3
@ IsmaelMiguel โอ้โหขอบคุณ !!!!
Conor O'Brien

1
ฉันคิดว่าคุณควรใช้[...x]แทน x.split ''
Downgoat

2
x=>[...x].reverse().join``[r='replace'](/eurt/g,!1)[r](/eslaf/g,!0)67: ฉันยังเปลี่ยนพารามิเตอร์การเข้าร่วมเป็นสตริงแม่แบบเปล่าเพื่อทำเครื่องหมายจุลภาคอาร์เรย์
Mama Fun Roll

2

Pyth, 30 ไบต์

::_z"eurt""false""eslaf""true"

นี้กลับอินพุต ( _z) ทดแทน"eurt"สำหรับ"false"และสำหรับ"eslaf" เปลี่ยนจะทำโดยใช้"true":

ลองออนไลน์


คุณสามารถประกาศ"true"และ"false"เป็นตัวแปร: =d"true"=k"false"::_z_dk_kdและใช้การย้อนกลับของมัน มันจะบันทึก 3 ไบต์
Adnan

::_zJ"eurt"K"false"_K_Jคือ 23 ไบต์
PurkkaKoodari

5
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

2

อาร์เอส , 56 ไบต์

\t
+(.*\t)(.)(.*)/\2\1\3
\t/
eurt/fals\t
eslaf/true
\t/e

กรณีสาธิตและการทดสอบสด


1
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

@feersum ฮึ ... ไม่ตอบคำถามของ
Pyth

อย่างน้อย 7 คำตอบที่มีปัญหานี้ที่ผมได้ทดสอบ
feersum

@feersum Ok; ฉันแก้ไขมันตอนนี้
kirbyfan64sos

2

Julia, 59 55 46 ไบต์

s->replace(reverse(s),r"eurt|eslaf",i->i<"et")

สิ่งนี้จะสร้างฟังก์ชั่นที่ไม่มีชื่อที่ยอมรับสตริงและส่งคืนสตริง f=s->...เรียกว่าให้มันชื่อเช่น

reverseการป้อนข้อมูลจะถูกกลับรายการโดยใช้ เราจับคู่กับนิพจน์ทั่วไปeurt|eslafที่ตรงกันtrueหรือfalseย้อนกลับ ในการแข่งขันเราใช้ฟังก์ชั่นที่คืนtrueถ้าการแข่งขันมีขนาดเล็กกว่าet(เช่นeslaf) และfalseอื่น ๆ ตัวอักษรบูลีนจะถูกแปลงเป็นสตริงในเอาต์พุต

บันทึกแล้ว 9 ไบต์และแก้ไขปัญหาด้วย Glen O!


2
falstrueผมไม่เชื่อว่างานนี้อย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

มันใช้เหตุผลพื้นฐานเดียวกันดังนั้นฉันจะเสนอให้คุณ: s->replace(reverse(s),r"eurt|eslaf",i->i<"et")- ใช้ regex แทนที่จะทำสองครั้งและฟังก์ชั่นสำหรับการแทนที่ที่ประเมินtrueว่าเป็น "elsaf" และfalseถ้าเป็น "eurt" 46 ไบต์
เกลน O

โอ้แล้วมันก็แก้ไขfalstrueปัญหาด้วยเช่นกัน
เกลน O

@GlenO เยี่ยมมากขอบคุณ
Alex A.

@feersum แก้ไขแล้ว
Alex A.

2

Javascript, 135 ไบต์

function(s){return s.split("").reverse().join("").replace(/eslaf/i,'☺').replace(/eurt/i,'☻').replace(/☻/g,!1).replace(/☺/g,!1)}

ทดสอบ:

=>"false ตรงข้ามกับความจริง"

<="จริงสำหรับ etisoppo eht si false"

ขอบคุณ ProgramFOX และ edc65 สำหรับการชี้ข้อผิดพลาด!


ยินดีต้อนรับสู่ Programming Puzzles & Code Golf! คำถามนั้นร้องขอโปรแกรมหรือฟังก์ชั่นเต็มรูปแบบดังนั้นไม่ใช่แค่ข้อมูลโค้ดที่ถือว่ามีตัวแปรsอยู่ นอกจากนี้รหัสของคุณไม่ทำงานสำหรับfalstrue: ควรจะส่งออกไม่ได้falseslaf trueslafคุณต้องการแก้ไขปัญหาเหล่านี้หรือไม่ ขอบคุณ! :)
ProgramFOX

@ProgramFOX ขอบคุณ! ฉันจะทำอย่างนั้น!
Fuzzyzilla

1
คุณสามารถบันทึกไม่กี่ไบต์ถ้าคุณใช้ ES6 f=s=>s.split(""). ...ก็มีลูกศรนี้ไวยากรณ์ฟังก์ชั่น:
ProgramFOX

นี่ทั้งซับซ้อนและผิดมากเกินไป ทดสอบด้วย 'false1' หรือ 'true0' หรือ 'true1'
edc65

@ edc65 ทำไมต้องขอบคุณครับ
Fuzzyzilla

2

Java, 162 98 92 ไบต์

ขอบคุณ (และขออภัย! ~) ถึง @DanielM ที่บอกฉันเกี่ยวกับ StringBuffer และความจริงที่ว่าเราสามารถใช้ฟังก์ชั่น!

เพราะคุณรู้จาวา

s -> ("" + ใหม่ StringBuffer (s.replaceAll ("false", "eurt")). reverse ()). replaceAll ("eurt", "false");

ส่งคืนสตริงที่ถูกต้องและกลับด้าน

เวอร์ชันที่ไม่ถูกปรับแต่ง:

s-> StringBuilder ใหม่ (
    s.replaceAll ( "เท็จ", "eurt"))
    . .reverse () toString () replaceAll ( "eurt", "เท็จ.");

โดยพื้นฐานแล้วฉันจะแทนที่ทุกกรณีของ "เท็จ" ด้วยการย้อนกลับ "จริง" จากนั้นย้อนกลับสตริงทั้งหมดแล้วแทนที่ "จริง" รุ่นย้อนหลังตอนนี้ (ไม่ใช่คนที่ฉันเพิ่งเปลี่ยน) เป็น "เท็จ" peasy ง่าย ๆ


StringBuffer สั้นกว่าไบต์ รวมถึงฟังก์ชั่นที่ได้รับอนุญาต
แดเนียลเอ็ม

ฉันกำลังเตรียมคำตอบในภาษาอื่นดังนั้นคุณสามารถเก็บไว้
Daniel M.

returnเป็นนัยเมื่อต้องรับมือกับ lambdas หนึ่งบรรทัด
แดเนียลเอ็ม

4
Java เอาชนะ Python หรือไม่ ตอนนี้แน่นอนที่สุดก็คือพวกเรา
Downgoat

1
@GaborSch Nifty : P ขอบคุณ!
Addison Crump


1

Python 3, 68 100 bytes

ฉันยังคงเล่นกอล์ฟอยู่ แต่ก็จับจ้องไปที่จุดบกพร่องดังนั้นfalstrue -> falselsafและtrufalse -> trueurt

ตรงไปตรงมาสวย:

print(input()[::-1].replace("eurt","false").replace("eslaf","true").replace("falstrue","falseslaf"))

3
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

สิ่งนี้สามารถแก้ไขได้อย่างง่ายดายโดยการเปลี่ยนคำสั่งแทนที่ ( print(input()[::-1].replace("eslaf","true").replace("eurt","false")))
Beta Decay

@BetaDecay ที่จะไม่ทำงานเพราะtrufalseจะกลายเป็นtrufalseในขณะที่มันต้องเป็นtrueurt
Adnan

@Adriandmen อย่างไรก็ตามนั่นไม่ใช่หนึ่งในตัวอย่างของ I / Os ดังนั้นตอนนี้ก็พอเพียงแล้ว :)
Beta Decay

@BetaDecay ฮ่า ๆ พวกเขาจะไม่เห็น :)
Adnan

1

Japt 26 ไบต์

หมายเหตุ:สิ่งนี้อาจไม่ถูกต้องเนื่องจากต้องมีการแก้ไขข้อบกพร่องหลังจากการโพสต์ความท้าทายนี้

Uw r"eurt|eslaf",X=>X<"et"

ลองใช้ในล่ามออนไลน์ ! (ฟังก์ชั่นลูกศรต้องใช้เบราว์เซอร์ที่สอดคล้องกับ ES6 เช่น Firefox)

มันทำงานอย่างไร

             // Implicit: U = input string
Uw r         // reverse U, then replace:
"eurt|eslaf" // occurrences of either "eurt" or "eslaf"
X=>X<"et"    // with "false" or "true", respectively
             // Implicit: output last expression

นี่คือรุ่นที่ทำงานก่อนการแก้ไขข้อบกพร่อง: (38 ไบต์)

Uw $.replace(/eurt|eslaf/g,X=>X<"et")$


1

Pyth, 28 22

Amr`!dZ2jHjLGcR_Hc_z_G

6 ไบต์ขอบคุณ Jakube

ทำงานอย่างถูกต้องสำหรับfalstrueดังที่แสดงในชุดด้านล่าง

ชุดทดสอบ


ไม่ฉันคิดว่าฉันทำผิดพลาด โซลูชัน 22 ไบต์ของคุณถูกต้อง
Jakube

1

Haskell, 102 ไบต์

h('t':'r':'u':'e':s)="eslaf"++h s
h('f':'a':'l':'s':'e':s)="eurt"++h s
h(x:s)=x:h s
h[]=""
r=reverse.h

การแทนที่ "จริง" โดย "เท็จ" และในทางกลับกันค่อนข้างจะยาวด้วยการจับคู่รูปแบบ แต่อย่างน้อยก็จัดการได้อย่างถูกต้องด้วย "falstrue" และสิ่งที่คล้าย และนอกจากนี้ฉันสงสัยว่าเวอร์ชันที่ใช้ regex ที่ถูกต้องจะมีความยาวขึ้นอีกเล็กน้อย


1

Python 3 - 108 92 ไบต์

import re
print(re.sub("eslaf|eurt",lambda m:repr(len(m.group(0))>4).lower(),input()[::-1]))

ใช้ regex เพื่อจับคู่กับ "true" หรือ "false" และใช้แลมบ์ดาเพื่อประมวลผลการจับคู่และเลือกสิ่งที่จะใช้เป็นสตริงแทนที่ การใช้ repr จะได้รับการแสดงสตริงของ (len (จับคู่)> 4) ซึ่งให้ "True" เมื่อ "false" ถูกจับคู่และในทางกลับกัน (และใช้. lower () เพราะ repr (bool) ให้สตริงที่เป็นตัวพิมพ์ใหญ่) ของการแข่งขันและจบลงโดยย้อนกลับการเปลี่ยนจากนั้นอินพุทที่ประมวลผลโดยใช้ [:: - 1]

จัดการเพื่อลดความยาว 16 ไบต์จากคำแนะนำของ TFelds

แก้ไข: Python กลับมาอยู่หน้าจาวาโดยไม่จำเป็นต้องมีการเตือนภัย


5
เราต้องการที่นี่ว่าโปรแกรมใช้งานได้กับอินพุตทั้งหมดไม่เพียง แต่สำหรับกรณีทดสอบที่กำหนด
lirtosiast

คุณสามารถบันทึก 6 ไบต์โดยการย้อนกลับสตริงก่อนแล้วจึงแทนที่ (บันทึกหนึ่ง[::-1]) print(re.compile("eslaf|eurt").sub(lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1]))
TFeld

นอกจากนี้คุณยังสามารถออกไปโดยไม่ใช้ re.compile print(re.sub("eslaf|eurt",lambda m:repr(m.group(0)!="eurt").lower(),input()[::-1])) เปลี่ยนm.group(0)!="eurt"เป็นlen(m.group(0))>4(สำหรับอีก 1)
TFeld

1

𝔼𝕊𝕄𝕚𝕟, 40 ตัวอักษร / 65 ไบต์

ô[…ïċ/false|true/g,⇏[…⬯+!שúa]ù⬮ø⬯)]ù⬮ø⬯)

Try it here (Firefox only).

ขอบคุณ @feersum ที่ชี้ให้เห็นข้อผิดพลาด!

21 ตัวอักษร / 43 ไบต์ไม่ใช่การแข่งขัน

ôᴙ(ïċ/⊭|⊨⌿,↪ᴙ(⬯+!ë$⸩⸩

Try it here (Firefox only).


2
falstrueนี้ไม่ได้ทำงานอย่างถูกต้องสำหรับการป้อนข้อมูล
feersum

1

Prolog, 225 ไบต์

p(X):-string_to_list(X,L),reverse(L,B),q(B,C),string_to_list(Z,C),write(Z),!.
q([],[]).
q([101,117,114,116|T],[102,97,108,115,101|L]):-q(T,L).
q([101,115,108,97,102|T],[116,114,117,101|L]):-q(T,L).
q([H|T],[H|L]):-q(T,L).

ลองออนไลน์ได้ที่นี่
เรียกใช้โดยการสืบค้นด้วยวิธีต่อไปนี้:

p("falstrue").

0

Ruby, 55 ไบต์

->s{s.gsub(/true|false/){$&[?t]?:eslaf: :eurt}.reverse}

ทดสอบ:

->s{s.gsub(/true|false/){$&[?t]?:eslaf: :eurt}.reverse}["false,true,undefined"]
=> "denifednu,false,true"


0

OpenSCAD, 178 ไบต์

(โปรดทราบว่าสิ่งนี้ใช้ไลบรารี String Theoryเนื่องจาก OpenSCAD ไม่มีไลบรารีมาตรฐานแน่นอนนอกจากนี้นี่เป็นฟังก์ชันเนื่องจากอินพุตที่ได้รับอนุญาตเท่านั้นคือการใช้โค้ดแบบฮาร์

use <Strings.scad>;function f(a)=contains(g(a),"eurt")?replace(g(a),"eurt","false"):g(a);function g(a)=contains(reverse(a),"eslaf")?replace(reverse(a),"eslaf","true"):reverse(a);

0

C #, 260 ไบต์

using System;class P{static void Main(){var y=Console.ReadLine();char[] n=y.ToCharArray();Array.Reverse(n);var s=new string(n);if(s.Contains("eslaf")){s=s.Replace("eslaf","true");}if(s.Contains("eurt")){s=s.Replace("eurt","false");}Console.WriteLine(s);}}

นี่เป็นครั้งแรกของฉัน (จริง) โพสต์ - ฉันเคยเห็นคนใช้ c # ข้างต้นไม่รวม: ใช้ระบบ; คลาส P {}, โมฆะหลักคงที่ (), Console.WriteLine (); หรือ Console.ReadLine (); เห็นได้ชัดว่าสิ่งเหล่านี้ใช้เวลาเป็นจำนวนมากสำหรับฉัน - หากมีวิธีการเล่นกอล์ฟนั้นหรือหากไม่ได้รับการยกเว้นจากรหัสกอล์ฟ - ให้ฉันรู้ :)
Belfield

0

PHP, 60 ไบต์

อย่างง่ายย้อนกลับสตริงก่อนจากนั้นแทนที่เวอร์ชันที่ย้อนกลับด้วยการสลับที่เกี่ยวข้อง

"falstrue" กลายเป็น "eurtslaf" กลายเป็น "falseslaf"

<?=strtr(strrev($argv[1]),{'eurt'=>'false','eslaf'=>'true'})

0

Perl 5.10, 54 ไบต์

$_=reverse<>;s/(eurt)|(eslaf)/$1?"false":"true"/eg;say

ย้อนกลับจากนั้นแทนที่ วิธีอื่นในการทำนอกเหนือจากตารางแฮชที่ใช้สำหรับคำตอบ Perl อื่น ๆ ซึ่งจบลงด้วยการที่สั้นลง!

ลองออนไลน์


-1

Pyth - 18 ไบต์

สามารถเล่นกอล์ฟได้มากขึ้น

Amr`!dZ2::_z_GH_HG

Test Suite


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