การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

1
คลาย CUBE
คุณเคยดูรูปร่าง 3 มิติและคิดว่าเรามี 2 มิติ ลองสร้าง 3D เป็น 1D กันเถอะ! (ดูสิ่งที่ฉันทำที่นั่น?) งาน ให้การเป็นตัวแทน 2D ของคิวบ์ (เลย์เอาต์ด้านล่าง) แบนมันให้เป็นสตริงเดียวโดยอิงตามพอยน์เตอร์ The CUBE นี่คือเลย์เอาต์ของคิวบ์ที่เต็มไปด้วย no-ops ( ,) และพอยน์เตอร์ที่มุม ( <>v^/) Navigation Pointer (NP) เริ่มต้นโปรแกรมตามที่แสดง | NP begins here, moving right. V >,,,,,,,,,,,,,,,,,,v , ,, , , , , , , , , , , …

1
ควินที่ปลอดภัยในการหมุน
เขียนควินที่เหมาะสมซึ่งการหมุนทุกครั้งเป็นควินที่เหมาะสม ตัวอย่างเช่นหากซอร์สโค้ดของคุณคือabcdef: abcdef จะส่งออก abcdef bcdefa จะส่งออก bcdefa cdefab จะส่งออก cdefab defabc จะส่งออก defabc efabcd จะส่งออก efabcd fabcde จะส่งออก fabcde หมุนเวียน"จะทำโดยการแยกสตริงเป็นสองชิ้นและการย้อนกลับสั่งของพวกเขา" เกณฑ์การให้คะแนน นี่คือรหัสกอล์ฟ คำตอบที่สั้นที่สุดในการชนะไบต์ ช่องโหว่มาตรฐานใช้

1
ตัดหญ้าเป็นรูปสี่เหลี่ยมผืนผ้า
สนามหญ้าถูกกำหนดให้เป็นเขตข้อมูลรูปสี่เหลี่ยมผืนผ้าที่มีอักขระหนึ่งตัวล้อมรอบด้วยช่องว่างที่มองเห็นได้สองชั้น นี่หมายถึงสองบรรทัดด้านบนและสองบรรทัดด้านล่างและช่องว่างสองช่องทางด้านซ้าย (ด้านขวามีช่องว่างที่มองเห็นได้ดังนั้นคุณไม่จำเป็นต้องรวมไว้) ||||| ||||| ||||| สนามหญ้าที่ถูกตัดเป็นโครงสร้างที่คล้ายกันยกเว้นว่าตัวละครหลักเป็นเวอร์ชั่นย่อของอักขระตัวแรก ..... ..... ..... เครื่องตัดหญ้าเป็นอักขระสองตัวที่แตกต่างกันซึ่งแตกต่างจากอักขระสองตัว นี่คือตัวอย่างโดยมี=ด้านหลังของเครื่องตัดหญ้าและoด้านหน้า: =o เครื่องตัดหญ้าจะเคลื่อนที่ไปรอบ ๆ สนามหญ้าในแนวตั้งและสามารถหมุนด้านหน้าได้ เครื่องตัดหญ้าด้านบนอาจมีลักษณะใด ๆ ด้านล่างในระหว่างการเคลื่อนไหว: =o o= o = = o เครื่องตัดหญ้าสามารถเริ่มต้นที่ตำแหน่งด้านล่างใดก็ได้บนสนามหญ้าด้านล่าง ผู้ที่มีoอำนาจจะขับรถรอบสนามหญ้าตามเข็มนาฬิกา ผู้ที่มี0อำนาจจะขับไปรอบ ๆ สนามหญ้าทวนเข็มนาฬิกา = = 0 o =o|||||0= ||||| =0|||||o= o 0 = = อนิเมชั่นเริ่มต้นที่ 0 ในแต่ละวินาทีเครื่องตัดหญ้าจะเคลื่อนที่ไปข้างหน้าหนึ่งช่องว่างและตัดหญ้าที่ด้านหน้า เมื่อเครื่องตัดหญ้าหายไปหนึ่งจุดก็จะปรากฏขึ้นตัด เมื่อด้านหน้าเครื่องตัดหญ้าถึงรายการเจียระไนสุดท้ายในบรรทัด (และยังมีหญ้าเจียระไน) เครื่องตัดหญ้าจะหมุนกลับหนึ่งครั้งเพื่อดำเนินการตัดหญ้าปัจจุบันต่อไป (อยู่ในตำแหน่งตามเข็มนาฬิกา / …

21
ตำแหน่งว่างหรือไม่มีที่ว่าง?
เราทุกคนเห็นสัญญาณของโมเต็ลบอกเราว่ามีที่ว่างหรือไม่: โดยปกติแล้วตัวอักษรเหล่านี้จะมีตัวอักษรVACANCYสว่างขึ้นอย่างถาวรและมีตัวอักษรNO lit up หากไม่มีห้องใดในโมเต็ล ความท้าทาย โมเต็ลเฉลี่ยในสหรัฐอเมริกามี 200 ห้อง คุณจะเขียนโปรแกรม / ฟังก์ชั่นที่ใช้จำนวนเต็มT (สำหรับห้องที่ถ่ายไว้) เป็นอินพุตเท่านั้น โปรแกรมของคุณแล้วจะแสดงคำว่า NO VACANCYตัวอักษรของVACANCYจะถูกพิมพ์ด้วยสีแดง หากT ≥ 200 ตัวอักษรของNOจะถูกพิมพ์ด้วยสีแดง ตัวอย่างเช่นสมมติว่าa.outโปรแกรมของคุณและ "input" = อาร์กิวเมนต์บรรทัดคำสั่ง: (ฉันพิมพ์ผิดและระบบของฉันไม่สนใจขนาดตัวพิมพ์) กฎระเบียบ โปรแกรม / ฟังก์ชั่นของคุณจะต้องแสดง (หรือถ้าแลมบ์ดาคืนค่า ) สตริงที่แน่นอนNO VACANCYรวมถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ โปรแกรม / ฟังก์ชั่นของคุณอาจตั้งค่าสีพื้นหน้าของข้อความเป็นสีแดงไม่ใช่พื้นหลัง หากคุณต้องการคุณสามารถใช้รหัสหลบหนี ANSI เพื่อพิมพ์สีแดง - ใช้\x1b[31mงานได้ โปรแกรม / ฟังก์ชั่นของคุณอาจไม่เปลี่ยนสีข้อความของเชลล์หลังจากเสร็จสิ้น โปรแกรม / ฟังก์ชั่นของคุณจะต้องยุติลงตามปกติ โปรแกรม / …
17 code-golf  color 

1
Metagolf การคูณ Brainflak
คำถามนี้เป็นความท้าทายครั้งแรกของ Brain-Flak Birthday ที่ออกแบบมาเพื่อฉลองวันเกิดครั้งแรกของ Brain-Flak! คุณสามารถหาข้อมูลเพิ่มเติมเกี่ยวกับวันเกิดของ Brain-Flak ได้ที่นี่ ฤดูร้อนครั้งที่แล้วเรามีBrain-flak Integer Metagolfและคำตอบที่สร้างขึ้นมีประโยชน์มากต่อชุมชน Brain-Flak ตั้งแต่นั้นมา สิ่งสำคัญที่ทำให้ Integer Metagolf มีประสิทธิภาพนั้นเป็นเทคนิคที่เรียกว่าการเข้ารหัสแบบการคูณ ในการคูณรันไทม์ Brain-Flak มีราคาแพงมาก ตัวอย่างการคูณที่รู้จักกันสั้นที่สุดคือ: ({}<>)({<({}[()])><>({})<>}{}<><{}>) ค้นพบโดยMegatom อย่างไรก็ตามมีวิธีง่าย ๆ ในการสร้างการคูณเวลาคอมไพล์ ตัวอย่างเช่นรหัสต่อไปนี้จะคูณด้วย 5: (({})({})({})({}){}) ลองออนไลน์! วิธีนี้ใช้งานได้เนื่องจากนิพจน์ที่ต่อเนื่องกันถูกรวมเข้าด้วยกัน แต่ละคน({})ไม่ทำอะไรเลยกับสแต็ก ( {}จะปรากฏขึ้นแล้ว(..)ดันกลับไปด้านหลัง) และประเมินว่าอะไรก็ตามที่อยู่ด้านบนสุดของสแต็ก นิพจน์เหล่านี้ทั้งหมดรวมกันได้มากถึงห้าเท่าสิ่งที่อยู่ด้านบนสุดของสแต็ก สำหรับnนิพจน์สตริงต่อไปนี้จะสร้างตัวอย่างที่จะคูณด้านบนของสแต็กด้วยn: "("+"({})"*(n-1)+"{})" สิ่งนี้ทำงานโดยการnแสดงออกที่ประเมินทั้งหมดไปด้านบนของสแต็ค อันแรกn-1ไม่ได้เปลี่ยนแปลงอะไรเลยและอันสุดท้ายจะเอาส่วนบนสุดของสแต็กออกมาก่อนกด สำหรับหมายเลขคอมโพสิตคุณสามารถโยงนิพจน์ขนาดเล็กหลาย ๆ ตัวเข้าด้วยกันเพื่อบันทึกไบต์ ตัวอย่างเช่นคุณสามารถคูณ 25 ด้วยการคูณด้วย 5 สองครั้ง: (({})({})({})({}){})(({})({})({})({}){}) มันค่อนข้างง่ายและสำหรับตัวเลขบางตัวก็ใช้งานได้ดี …

24
Prisoner's Dilemma v.3 - Petri Dilemma
นักวิทยาศาสตร์บ้าเพิ่งสร้างแบคทีเรียชนิดใหม่! เขาได้ตัดสินใจที่จะตั้งชื่อมันว่าNoblus Gentlemanusหลังจากสังเกตพฤติกรรมของมัน อย่างไรก็ตามแบคทีเรียของเขาหมดอาหารและประกาศสงครามเนื่องจากพวกเขาสามารถเก็บเกี่ยวซากศพของแบคทีเรียอื่นเพื่อเป็นอาหารมากพอที่จะสร้างสำเนาของตัวเอง มีแบคทีเรียหลากหลายชนิดที่มีกลยุทธ์แตกต่างกันในการเล่น Dilemma ซึ่งเป็นเกมโปรดของพวกเขา มีแบคทีเรียห้าตัวจากสายพันธุ์ย่อยที่แตกต่างกัน ในภาวะที่กลืนไม่เข้าคายไม่ออกของนักโทษผู้เล่นสองคนแต่ละคนเลือกข้อบกพร่องหรือร่วมมือกันพร้อมกัน หากผู้เล่นคนใดคนหนึ่งเลือกที่จะร่วมมือกันและผู้เล่นคนอื่นเลือกที่จะเริ่มต้นผู้ defaulter จะได้รับ 2 คะแนนและผู้ประสานงานจะเสีย 3 คะแนน หากผู้เล่นทั้งสองเลือกร่วมมือกันผู้เล่นทั้งสองจะได้ 1 คะแนน หากผู้เล่นทั้งสองเลือกค่าเริ่มต้นผู้เล่นทั้งสองจะเสีย 1 คะแนน เป็นสุภาพบุรุษประเสริฐพวกแบคทีเรียได้ตัดสินใจที่จะต่อสู้กับสงครามครั้งนี้โดยการเล่นเกมยาว 200 นัดของ Dilemma ของ Iterated Prisoner's ผู้แพ้ของการต่อสู้แต่ละครั้งจะฆ่าตัวตายยอมให้ผู้ชนะทำการโคลนนิ่งตัวเอง ในกรณีที่เน็คไทแบคทีเรียทั้งสองจะมีชีวิตอยู่ แต่จะไม่สามารถทำการโคลนนิ่งได้ นอกจากนี้แบคทีเรียทั้งหมดจากการแข่งขันจะมีคะแนนมากกว่า 10% ในการแข่งขันครั้งต่อไป โคลนดำเนินการผ่านจุดของแบคทีเรียที่ถูกโคลนโดย นอกจากนี้ยังมีโอกาสหนึ่งในสิบทุกครั้งที่แบคทีเรียหนึ่งจะกลายพันธุ์เป็นสายพันธุ์ย่อยอื่นด้วยคะแนนโบนัส 0 (ถ้าฉันได้รับการร้องเรียนเกี่ยวกับการสุ่มนี้ฉันสามารถลบออกได้) หลังจากที่แบคทีเรียได้เล่นดวลเหล่านี้จำนวนเท่ากับจำนวนของเชื้อแบคทีเรียสิบครั้งนักวิทยาศาสตร์บ้าตั้งใจลดจาน Petri ที่แบคทีเรียอาศัยอยู่ และแบคทีเรียทั้งหมดได้รับแหล่งอาหารใหม่สิ้นสุดการดวล สิ่งนี้แตกต่างจากการแข่งขันที่กระอักกระอ่วนซ้ำของนักโทษธรรมดาเนื่องจากมันเกี่ยวข้องกับการดวล 1v1 พร้อมจุดพกพามากกว่าที่จะพยายามทำแต้มให้ได้มากที่สุดโดยรวม สิ่งนี้สร้างความแตกต่างอย่างมากในการกำหนดกลยุทธ์ที่มีประสิทธิภาพ แบคทีเรียแต่ละตัวจะได้รับการป้อนข้อมูลที่จุดเริ่มต้นของการหมุนในรูปแบบ: (หมายเลขเทิร์น, คะแนนปัจจุบัน, …

21
เรียงลำดับตัวเลขตามการเกิดขึ้นครั้งแรกใน pi
รับจำนวนที่ไม่ใช่เชิงลบnเรียงลำดับตัวเลขของnโดยเกิดขึ้นครั้งแรกของพวกเขาในปี่ การป้อนข้อมูลสามารถนำมาผ่านการโต้แย้งฟังก์ชั่น cli หรือ STDIN และเป็นสตริงถ่าน [] หรือจำนวนเต็ม คุณสามารถส่งออกผ่านทางค่าตอบแทนสถานะทางออกหรือ STDOUT
17 code-golf  number  sorting  pi 

12
ไม่มีสิ่งใดเป็นอาหารกลางวันฟรี
... หรือไม่ ความท้าทายของคุณคือการแยกการเรียกเก็บเงินอาหารกลางวันของฉันซึ่งมีฐานราคาและเคล็ดลับ, ส่วนลด, คูปองและความพิเศษและดูว่าอาหารกลางวันของฉันคือ $ 0 หรือน้อยกว่า หากนี่คืออินพุต: 12.34 15 tip 25 discount 1.5 extra 2 coupon falseจากนั้นการส่งออกอาจจะมี นี่คือวิธีการทำงาน: 12.34 เป็นราคาฐาน 15 tipหมายถึงการเพิ่ม 15% ของผลรวม 25 discountหมายถึงการลบ 25% จากผลรวม 1.5 extraหมายถึงการเพิ่ม 1.5 ถึงผลรวม 2 couponหมายถึงการลบ 2 จากผลรวม อาจมีจำนวนเคล็ดลับส่วนลดคูปองและสิ่งเพิ่มเติมใด ๆ แต่จะมีราคาพื้นฐานหนึ่งราคาเสมอ จากนั้นเราทำ(12.34 * 1.15) * 0.75 + 1.5 - 2ผลลัพธ์ออกมาเป็น …

1
การเขียนโปรแกรมในสองมิติเวลา
มันเป็นอุบัติเหตุที่ตลกที่โลกนี้มีเพียงมิติเดียว แต่มันไม่จำเป็นต้องเป็นแบบนั้น เป็นเรื่องง่ายที่จะจินตนาการถึงโลกที่มีเวลา 2 มิติหรือมากกว่านั้นและในโลกเหล่านั้นคุณสามารถสร้างคอมพิวเตอร์และใช้งานซอฟต์แวร์กับพวกมันได้เช่นเดียวกับในโลกนี้ ระบบ นี่คือระบบสำหรับการรันโปรแกรม Brainf * ck ในสองมิติของเวลา: มิติเวลาสองค่าคือ x และ y โปรแกรม Brainf * ck แต่ละรายการประกอบด้วย x half-program และ ay half-program เช่นโปรแกรมอาจเป็นได้ x: +>+ y: [-] สองโปรแกรมครึ่งแต่ละโปรแกรมมีตัวชี้โปรแกรมของตัวเอง แต่พวกเขาแชร์ตัวชี้เทปเดี่ยว (นั่นคือพวกเขาทั้งคู่ทำงานในเซลล์เดียวกันของเทป) เวลาเป็น 2 มิติดังนั้นจึงประกอบด้วยตารางช่วงเวลา: เมื่อเลื่อนไปตามมิติ x โปรแกรมครึ่ง x จะดำเนินการในขั้นตอนเดียว เมื่อเลื่อนไปตามมิติ y โปรแกรมครึ่ง y จะดำเนินการในขั้นตอนเดียว ดังนั้นสำหรับตัวอย่างเช่นสมมติว่าเทปเริ่มออกเป็น[0] 0 0( []หมายถึงตัวชี้เทป) …

20
กำจัดช่องว่างบนบรรทัดอื่นที่ว่างเปล่า
อ่าอีกหนึ่งความเห็นแก่ตัวของฉันที่ใช้กับกองนี้ ในฐานะเจ้าของ Chromebook ฉันเป็นผู้ใช้ Ace IDE ตัวแก้ไขที่ใช้โดย Cloud9 บ่อยครั้ง มันมีเครื่องมือมากมายสำหรับจัดการกับช่องว่างส่วนเกิน แต่มันขาดหนึ่ง: การล้างบรรทัดว่าง ภารกิจของคุณในวันนี้คือรับข้อมูลจากสถานที่ที่ฉันสามารถคัดลอก - วางไปที่ [ ;)] ออกบางสิ่งที่เหมือนกันบันทึกช่องว่างทั้งหมดและตัวสร้างตารางในบรรทัดว่าง ฉันจะให้ตัวอย่างด้วย#s แทนอักขระช่องว่างที่จะถูกลบออก อินพุต 1: if (this.Color !== 'blue') { ## this.Color = 'blue'; } เอาท์พุท: if (this.Color !== 'blue') { [empty line] this.Color = 'blue'; } อินพุต 2: function outputSomething(times) { for …

9
ย่นเส้นทางที่แน่นอน
บางครั้งพา ธ สัมบูรณ์ที่มีความยาวเช่นในพารามิเตอร์บรรทัดคำสั่งไปยังเครื่องมือ linux สามารถทำให้สั้นลงโดยใช้ไดเรกทอรีการทำงานปัจจุบันเป็นข้อมูลอ้างอิง: $ pwd /home/heh $ cat /home/heh/mydir/myfile my stuff $ cat mydir/myfile my stuff ในการท้าทายนี้คุณควรสร้างฟังก์ชันหรือโปรแกรมที่รับพารามิเตอร์สองตัว: พา ธ สัมบูรณ์โดยใช้รูปแบบ linux (เริ่มต้นด้วย/) ไดเรกทอรีปัจจุบันโดยใช้รูปแบบเดียวกัน เอาต์พุตจะสั้นกว่าดังต่อไปนี้: อินพุต 1 ไม่เปลี่ยนแปลง พา ธ สัมพัทธ์ที่อ้างถึงไฟล์ / ไดเร็กทอรีเดียวกันกับพา ธ สัมบูรณ์ คะแนนดี: หากระบบปฏิบัติการของคุณเข้ากันได้กับ linux คุณสามารถใช้ไดเรกทอรีปัจจุบันของระบบแทนการรับมันเป็นอินพุต คุณสามารถสมมติว่าอินพุตมีอักขระตัวอักษรและตัวเลขเท่านั้น (และตัวคั่นพา ธ ) คุณสามารถสันนิษฐานได้ว่าเส้นทางสัมบูรณ์การป้อนข้อมูลไม่มีตัวคั่นเส้นทาง/ในตอนท้าย คุณสามารถสมมติว่าไดเรกทอรีปัจจุบันของการป้อนข้อมูลมีตัวคั่นเส้นทาง/ในตอนท้าย คุณไม่สามารถสันนิษฐานได้ว่าพา ธ สัมบูรณ์อ้างถึงไฟล์ที่มีอยู่หรือส่วนใด ๆ …

1
ชีวิต: สร้างหรือพัฒนา
เมื่อพิจารณาถึงสถานะของตารางเกมแห่งชีวิตตารางตรวจสอบว่ามันอาจมีการพัฒนาจากสถานะก่อนหน้าใด ๆ หรืออาจถูกสร้างขึ้นเท่านั้น นั่นคือระบุว่ารัฐเป็นรัฐ"Garden of Eden"หรือไม่ อินพุต กริดของรัฐที่มี 1 ระบุว่า "มีชีวิตอยู่" และ 0 หมายถึง "ตาย" คุณสามารถเลือกสองสัญลักษณ์ที่แตกต่างแทน 0 และ 1 หากคุณต้องการ ความยาวด้านของกริดจะไม่เป็นศูนย์ แต่อาจเป็นจำนวนธรรมชาติใด ๆ 1 <= N <= 20 เซลล์ใด ๆ หรือทั้งหมดที่อยู่นอกกริดอินพุตอาจมีชีวิตในรุ่นนี้และเซลล์ใด ๆ หรือทั้งหมดอาจมีชีวิตอยู่ในรุ่นก่อนหน้า เอกภพที่จะพิจารณานั้นไม่มีที่สิ้นสุดดังนั้นจึงไม่มีเงื่อนไขขอบเขต ขอบของอินพุตไม่ใช่ขอบของจักรวาล โดยเฉพาะอย่างยิ่งกริดไม่ได้ห่อ อินพุตอาจอยู่ในรูปแบบของสตริงที่คั่นด้วยแถวหรือสตริงเดี่ยว หากคุณต้องการคุณอาจใช้ความยาวด้านหรือพื้นที่ของกริดเป็นอินพุตเพิ่มเติม (ก่อนหรือหลังกริด) รูปแบบอินพุตที่ยอมรับได้: 010,101,010 010101010 010 101 010 3 010101010 เอาท์พุต "สร้าง" หากไม่มีสถานะก่อนหน้านี้ที่เป็นไปได้ …

6
ทำให้ฉันเป็นพิซซ่า
เพราะเป็นวันเสาร์ (UTC) และฉันหิวฉันจึงอยากพิซซ่า ฉันจะให้คำสั่งซื้อและฉันต้องการพิซซ่าascii-art ที่น่าสนใจ ขึ้นอยู่กับความท้าทาย? The Drive-Thru ฉันจะสั่งซื้อของฉันทุกที่ที่ไดรฟ์ของคุณถึงไม่ว่าจะเป็น STDIN, พารามิเตอร์ฟังก์ชั่น, อาร์กิวเมนต์บรรทัดคำสั่ง แต่ฉันจะไม่ใส่ลงในตัวแปรสำหรับคุณ (นิพจน์ฟังก์ชัน JS ต้องกำหนดให้กับตัวแปร) การสั่งซื้อสินค้า คำสั่งของฉันจะมี 2 ส่วน เป็นครั้งแรกที่จะมีการบวกจำนวนเต็มไม่ใช่ศูนย์จากไป3 6นี่คือขนาดของพิซซ่าของฉัน ตัวอย่างเช่น6พิซซ่าขนาดที่ไม่มีรสชาติจะมีลักษณะดังนี้: /=====\ / \ | | | | \ / \=====/ ขนาด5: /====\ / \ | | \ / \====/ ขนาด4: /===\ | | | | \===/ ขนาด …

3
ความเพลิดเพลินสูงสุด
คุณได้รับกระเป๋า Skittles ทุกคนรู้ว่าในการที่จะชื่นชมรสชาติที่แตกต่างกันมากที่สุดคุณต้องหมุนไปมาระหว่างรสชาติต่างๆ ข้อมูลเบื้องต้น: คุณสามารถกินครั้งละ 1 skittle เท่านั้น คำสั่งที่คุณกิน skittles ของคุณจะต้องเป็นระยะ แต่ละช่วงเวลาไม่สามารถมีรสชาติที่เจาะจงมากกว่าหนึ่งครั้ง กระเป๋าของคุณมี skittles มากมาย คุณไม่สามารถกินของที่มีรสชาติเปราะบางได้มากกว่าที่ปรากฏในกระเป๋าของคุณ คุณต้องการกิน skittles มากเท่าที่คุณสามารถ (อาจไม่เป็นไปได้เสมอ) ตัวอย่าง: ให้บอกว่าคุณเริ่มต้นด้วย 3 Red, 2 Blue และ 3 Green skittles: R B G R B G R G Invalid: The last R must be followed by a B, not a …
17 code-golf 

15
ค้นหาตารางการแปล
ให้สองสตริงค้นหาตารางการแปล ( รหัสแทน ) ระหว่างสองหากไม่สามารถแปลได้ให้ส่งออกเป็นเท็จ คำตอบจะต้องย่อเล็กสุดและสร้างจากซ้ายไปขวา อักขระตัวแรกที่จะแปลระหว่างคำต้องเป็นตัวแรกในตารางการแปล นอกจากนี้จดหมายใด ๆ ที่ไม่ได้แปล (ในสถานที่เดียวกันกับที่เดิม) ไม่ควรอยู่ในตารางการแปล อาจกำหนดได้ง่ายที่สุดผ่านตัวอย่าง: กรณีที่ถูกต้อง "bat", "sap" => ["bt","sp"] สังเกตการสั่งซื้อผลลัพธ์ของ["tb","ps"]ไม่ถูกต้องสำหรับความท้าทายนี้ "sense", "12n12" => ["se","12"] สังเกตว่าการnแปลนั้นไม่ได้ถูกแปลอย่างไรเพราะมันมีความสัมพันธ์แบบ 1 ต่อ 1 "rabid", "snail" => ["rabd","snal"] สังเกตว่าการiแปลนั้นไม่ได้ถูกแปลอย่างไรเพราะมันมีความสัมพันธ์แบบ 1 ต่อ 1 "ass", "all" => ["s","l"] ไม่รวม A แต่ยังคงเหมือนเดิมsสามารถแมปได้lเนื่องจากการจับคู่รูปแบบ "3121212", "ABLBLBL" => ["312","ABL"] จับคู่รูปแบบได้อย่างสมบูรณ์แบบ กรณีที่เป็นเท็จ "banana", "angular" …

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