คำถามติดแท็ก code-golf

Code-golf เป็นการแข่งขันเพื่อแก้ไขปัญหาเฉพาะในส่วนที่น้อยที่สุดของซอร์สโค้ด

4
คำสั่งของชุด Mia
เกมลูกเต๋าMiaเปิดตัวชุดสองขนาดที่ไม่สำคัญ: {3,1} < {3,2} < {4,1} < {4,2} < {4,3} < {5,1} < {5,4} < {6,1} < {6,5} < {1,1} < {2,2} < {6,6} < {1,2} โดยทั่วไปการสั่งซื้อภายในขอบเขตของไม่สำคัญ{x,y}={y,x}, {1,2}มีค่ามากกว่าสิ่งอื่นใดคู่มากกว่าคู่บุหรี่และค่าตัวเลขตัดสินใจในกรณีที่มีการผูก ตอนนี้สมมติว่าคุณต้องการใช้nลูกเต๋า นอกจากนี้ลูกเต๋ายังมีmใบหน้า ตัวอย่าง: {1,5,3,4} < {1,2,6,3} ตั้งแต่ 5431 <6321 {1,2,3,5} < {1,1,5,6} < {1,1,5,5}, {1,1,6,6} < {1,1,1,3} < {2,2,2,3} < {1,1,1,1} < …

2
โซ่ Quine แบบสองทิศทาง
PPCG ยังไม่ได้รับผลตอบรับที่เพียงพอ ... ท้าทาย: งานของคุณคือการสร้างโปรแกรม "A0" เมื่อโปรแกรมนี้รันโดยไม่มีอินพุตมันจะไม่มีผลใด ๆ เมื่อโปรแกรมนี้ทำงานด้วยอินพุตมันจะส่งออก "A1" เมื่อเรียกใช้ "A1" โดยไม่มีอินพุตอินพุตจะส่งเอาต์พุต "A0" เมื่อ "A1" ทำงานด้วยอินพุตมันจะส่งออก "A2" ค่อนข้างมาก "A (k)" จะส่งออก "A (k-1)" เมื่อเรียกใช้โดยไม่มีอินพุตและจะส่งออก "A (k + 1)" เมื่อเรียกใช้ด้วยอินพุต รายละเอียด ฉันเชื่อว่าความท้าทายนี้ง่ายพอ ไม่มีกฎอื่น ๆ จริงๆ ทุกโปรแกรมจะต้องมีอย่างน้อย 1 ไบต์โดยวิธีการ คุณอาจสันนิษฐานว่าข้อมูลที่ป้อนจะประกอบด้วยอักขระ ASCII เท่านั้นและคุณอาจละเว้นช่องว่างหากคุณต้องการ แต่คุณไม่สามารถระบุอินพุตเฉพาะ เอาต์พุตอาจเป็น STDOUT หรือ STDERR แต่โปรแกรมทั้งหมดของคุณจะต้องแสดงผลลัพธ์เป็นแบบเดียวกัน อีกอันหนึ่งอาจมีข้อความ (ดังนั้นคุณอาจส่งออกไปยัง STDOUT …

3
ส่วนจินตภาพของ Zeroes Riemann ที่ไม่สำคัญ
บทนำ ตามที่Riemann สมมุติฐาน , ศูนย์ทั้งหมดของฟังก์ชั่นซีตา Riemannเป็นจำนวนเต็มเชิงลบอย่างใดอย่างหนึ่งแม้ (เรียกว่าเลขเล็กน้อย ) หรือตัวเลขที่ซับซ้อนของรูปแบบ1/2 ± i*tสำหรับจริงบางอย่างtคุ้มค่า (เรียกว่าเลขไม่น่ารำคาญ ) สำหรับความท้าทายนี้เราจะพิจารณาเฉพาะศูนย์ที่ไม่น่าสนใจซึ่งส่วนจินตภาพเป็นบวกและเราจะสมมติว่าสมมติฐานของรีมันน์เป็นจริง เลขศูนย์ที่ไม่สำคัญเหล่านี้สามารถสั่งได้ด้วยขนาดของชิ้นส่วนจินตภาพ 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616iไม่กี่ครั้งแรกจะอยู่ที่ประมาณ ความท้าทาย รับจำนวนเต็มNเอาท์พุทส่วนจินตภาพของศูนย์ที่Nไม่น่าสนใจของฟังก์ชันซีตารีมันน์ถูกปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุด (ปัดครึ่งขึ้น - ดังนั้น13.5จะปัดเป็น14 ) กฎระเบียบ อินพุตและเอาต์พุตจะอยู่ในช่วงจำนวนเต็มที่สามารถแทนได้สำหรับภาษาของคุณ ตามที่ระบุไว้ก่อนหน้านี้สำหรับวัตถุประสงค์ของการท้าทายนี้สมมติฐานของรีมันน์ถือว่าเป็นจริง คุณสามารถเลือกได้ว่าจะให้อินพุทเป็นศูนย์ดัชนีหรือหนึ่งดัชนี กรณีทดสอบ กรณีทดสอบต่อไปนี้เป็นหนึ่งดัชนี 1 14 2 21 3 25 4 30 …

4
การคว้าน แต่ด้วยไฟล์ Windows!
เขียนควินที่เมื่อทำงานจะสร้างตัวเองในไดเรกทอรีปัจจุบันในไฟล์ต้นฉบับที่ชื่อตัวเอง เราจะใช้ Windows ในการนี้ดังนั้นชื่อไฟล์ (และดังนั้นควินิน) จะต้องมีข้อ จำกัด ดังต่อไปนี้: ไม่มีตัวละครเหล่านี้ \ / : ? * < > | น้อยกว่า211 255 ตัวอักษร ข้อ จำกัด และสมมติฐาน รหัสของคุณจะต้องเป็นโปรแกรมเต็มรูปแบบ (มันจะถูกเรียกใช้หลังจากทั้งหมด) ไม่มีการคัดลอกจากไฟล์ต้นฉบับ คุณสามารถสมมติว่าไม่มีไฟล์อื่นที่มี Quine ของคุณเป็นชื่อของมัน (เพราะมันจะสร้างQuine (1)) อนุญาตให้มีข้อผิดพลาดได้ (ตราบใดที่ไม่ได้อยู่ในซอร์สโค้ด นี่คือ รหัสกอล์ฟรหัสสั้นที่สุดเป็นไบต์ชนะ! แก้ไข บางทีฉันอาจจะไม่ชัดเจนไฟล์ที่มีชื่อของควินินจะต้องมีการควินจริง ความผิดฉันเอง.

8
แปลง AWG เป็นนิ้ว
AWG (American Wire Gauge)เป็นวิธีการทั่วไปในการระบุขนาดลวด งานของคุณในการท้าทายนี้คือการแปลงจากมาตรวัดที่กำหนดเป็นเส้นผ่านศูนย์กลางของเส้นลวดเป็นนิ้ว ขนาดเป็นนิ้วสำหรับเกจวัดจาก4/0ถึง40แสดงในตารางด้านล่าง: ตารางเกจเป็นนิ้ว | AWG | Diameter (Inches) | |-----|-------------------| | 4/0 | 0.46 | | 3/0 | 0.4096 | | 2/0 | 0.3648 | | 1/0 | 0.3249 | | 1 | 0.2893 | | 2 | 0.2576 | | 3 | 0.2294 | | …

3
The Eratosthenes Shuffle
ท้าทาย เขียนฟังก์ชั่นหรือโปรแกรมที่รับสายอินพุตดำเนินการสลับอย่างเฉพาะเจาะจงและคุ้นเคยอย่างมากกับตัวอักขระและส่งผลลัพธ์ออกมา การสับที่ต้องการสามารถอธิบายได้โดยใช้อัลกอริทึมต่อไปนี้: ติดป้ายอักขระแต่ละตัวในอินพุตด้วยดัชนี 1 ฐาน เขียนอักขระหมายเลข 1 เป็นเอาต์พุต เริ่มต้นด้วยหมายเลขอักขระ 2 เขียนอักขระอื่น ๆ ไปยังเอาต์พุตตามลำดับยกเว้นอักขระ 2 เอง กล่าวอีกนัยหนึ่งเขียนอักขระ 4, 6, 8, 10 และอื่น ๆ เป็นเอาต์พุต เริ่มต้นด้วยหมายเลขอักขระถัดไป n ที่ยังไม่ได้เขียนเป็นเอาต์พุตเขียนอักขระทุกตัวที่ n ไปยังเอาต์พุตยกเว้นตัวอักษร n และยกเว้นอักขระอื่น ๆ (ตามป้ายกำกับตัวเลข) ที่คุณอาจเขียนไปยังเอาต์พุต ทำซ้ำขั้นตอนที่ 4 ตราบใดที่ยังคงเพิ่มอักขระใหม่ไปยังเอาต์พุต เขียนตัวอักษรที่เหลือเพื่อออกตามลำดับ ตัวอย่าง ติดฉลากอักขระ 1 2 3 4 5 6 7 8 9 10 …
9 code-golf 

11
สร้างชุดค่าผสมของกลุ่มตัวแปรได้สูงสุดถึงลำดับ n
SPECIFICATION ได้รับตัวแปรสร้างทุกชุดถึงการสั่งซื้อm nตัวอย่างเช่น, ผลลัพธ์ของการแมปสองตัวแปร ( aและb) ในการสั่งซื้อ1จะเป็น: a ข AB ผลลัพธ์ของการแมปสองตัวแปร ( aและb) ในการสั่งซื้อ2จะเป็น: a a 2 ข ข2 AB 2ข ab 2 a 2 b 2 ผลลัพธ์ของการแมปสองตัวแปร ( aและb) ในการสั่งซื้อ3จะเป็น: a a 2 3 ข ข2 ข3 AB 2ข 3ข 3ข2 ab 2 ab 3 2ข3 a 2 b …

2
ข้อผิดพลาด (หรือคำเตือน) ควินที่เป็นควินปกติ [ปิด]
ปิด คำถามนี้ต้องการรายละเอียดหรือความคมชัด ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ เพิ่มรายละเอียดและชี้แจงปัญหาโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา (ได้รับแรงบันดาลใจจากความคิดเห็นนี้กับคำถามเก่า ๆ ) พื้นหลัง ควินข้อผิดพลาด (ยังเป็นที่รู้จักกันในชื่อ "Kimian ควิน") เป็นโปรแกรมซึ่งเมื่อรวบรวมหรือทำงานทำให้เกิดการคอมไพเลอร์ / ล่าม / รันไทม์พิมพ์ข้อผิดพลาดที่มีข้อความเหมือนกันกับโปรแกรมของตัวเองและไม่มีอะไรอื่น สำหรับวัตถุประสงค์ของการท้าทายนี้เรากำลังกำหนด "ข้อผิดพลาด" ในวงกว้างเพื่อรวมคำเตือนด้วย งาน ในความท้าทายนี้เรากำลังมองหา ควินซึ่งก็เป็นข้อผิดพลาด quine เมื่อดำเนินการโปรแกรมจะต้องพิมพ์ซอร์สโค้ดของตัวเองตามปกติ (เช่นไม่ใช่ข้อผิดพลาด / ข้อความเตือน); สิ่งนี้จะต้องเป็นควินที่เหมาะสม (เช่นบางส่วนของโปรแกรมจะต้องเข้ารหัสส่วนต่าง ๆ ของเอาท์พุท) นอกจากนี้การคอมไพล์และเรียกใช้งานโปรแกรมยังต้องทำให้ซอร์สโค้ดของโปรแกรม - และไม่มีอะไรอื่น - ที่จะพิมพ์เป็นข้อผิดพลาดหรือข้อความเตือนโดยการใช้งาน (โปรดทราบว่านี่หมายความว่าคุณจะไม่สามารถใช้ข้อผิดพลาดในการคอมไพล์ในภาษาที่ป้องกันโปรแกรมจากการดำเนินการตามปกติ) ดังนั้นกล่าวอีกนัยหนึ่งคือซอร์สโค้ดของโปรแกรมจะถูกพิมพ์สองครั้งเมื่อผ่านแต่ละวิธี ชี้แจง ในกรณีส่วนใหญ่จะเห็นได้ชัดว่าอะไรคืออะไรและไม่ใช่ข้อความแสดงข้อผิดพลาด / คำเตือน เราไม่แยกความแตกต่างระหว่างสองอย่างนี้ ในกรณีที่คลุมเครือให้กำหนดข้อความแสดงข้อผิดพลาด / คำเตือนเป็นข้อความใด …

1
จำนวน XOR ติดลบ
เกี่ยวกับปีที่ผ่านมาคุณถูกถามเพื่อหาช่วงเวลาที่แฮคเกอร์ เหล่านี้เป็นตัวเลขที่มีเพียงปัจจัยคือ 1 และตัวเองเมื่อทำการXOR คูณในฐาน 2 ตอนนี้กำลังจะทำให้เครื่องเทศเพิ่มขึ้นเล็กน้อย พวกเราจะไปหาช่วงเวลา XOR ในฐาน-2 แปลงเป็นฐาน -2 ฐาน -2 เป็นจำนวนมากเหมือนฐานอื่น ๆ สถานที่ที่เหลือมากที่สุดคือสถานที่ 1 แห่ง (1 = (-2) 0 ) ถัดจากสถานที่ 2 แห่ง (-2 = (-2) 1 ) ถัดจากนั้นคือสถานที่ 4s (4 = (-2 ) 2 ) และอื่น ๆ เป็นต้น ความแตกต่างใหญ่คือตัวเลขลบสามารถแสดงในฐาน -2 โดยไม่มีเครื่องหมายลบใด ๆ นี่คือตัวอย่างการแปลง: Decimal | …

1
จำนวนนอตนายกที่มีการข้าม n
ปมที่สำคัญคือ ปมที่ไม่สำคัญซึ่งไม่สามารถเขียนเป็นผลรวมของปมที่ไม่ใช่ปมสองอัน คำอธิบายของknot-sum : ใส่นอตสองตัวที่อยู่ติดกัน ... จากนั้นให้ลากสองเส้นระหว่างเส้นเหล่านั้นไปยังเส้นเดียวกันในแต่ละด้านแล้วเอาส่วนที่อยู่ระหว่างบรรทัดที่คุณเพิ่งวาด การประกอบของสองนอตนี้จะเป็นปมใหม่ที่ไม่ใช่นายก นี่คือนอตที่สำคัญทั้งหมดที่มีการข้าม 7 ครั้งหรือน้อยกว่า (Unknot ไม่ใช่ไพร์ม): คุณจำเป็นต้องส่งออกจำนวน knots เฉพาะที่ไม่ซ้ำกันสำหรับจำนวนการข้ามที่กำหนด 1 0 2 0 3 1 4 1 5 2 6 3 7 7 8 21 9 49 10 165 11 552 12 2176 13 9988 14 46972 15 253293 16 1388705 ฉันไม่คิดว่าค่าเหล่านี้เป็นที่รู้จักสำหรับอินพุตที่ใหญ่กว่า16แต่หากได้รับอินพุตดังกล่าวรหัสของคุณจะต้องค้นหาผลลัพธ์ที่ถูกต้องที่ให้เวลาพอสมควร OEIS …

1
พิมพ์เวลาปัจจุบัน…โดยคำนึงถึงวินาทีกระโดด
(หมายเหตุ: แม้ว่าจะเกี่ยวข้องกัน แต่ความท้าทายนี้ไม่ได้ซ้ำกับสิ่งนี้เพราะมันต้องมีการกำหนดวินาทีกระโดดโดยอัตโนมัติมากกว่าการเข้ารหัสเวลาของพวกเขาและไม่ได้ซ้ำกันของมันเพราะความยากลำบากส่วนใหญ่มาจากการกำหนดเวลาโดยไม่เผ่นวินาที สิ่งที่ API เวลาส่วนใหญ่ไม่ได้ทำตามค่าเริ่มต้นดังนั้นโซลูชันมีแนวโน้มที่จะดูแตกต่างจากโซลูชันไปยังความท้าทายเหล่านั้น) เรากำลังจะมาถึงปลายปี 2016 แต่จะใช้เวลานานกว่าที่คนส่วนใหญ่คาดหวังเล็กน้อย ดังนั้นนี่คือความท้าทายในการฉลองวินาทีพิเศษของเราในปีนี้ แสดงเวลาปัจจุบันใน UTC เป็นชั่วโมงนาทีวินาที (ตัวอย่างเช่นรูปแบบเอาต์พุตที่ถูกต้องสำหรับเที่ยงวันจะรวมถึง12:00:00และ[12,0,0]การจัดรูปแบบไม่ได้มีความสำคัญอย่างยิ่งที่นี่) อย่างไรก็ตามมีการบิดโปรแกรมของคุณต้องจัดการกับวินาทีกระโดดอย่างเหมาะสมทั้งในอดีตและอนาคต ซึ่งหมายความว่าโปรแกรมของคุณจะต้องรับรายการวินาทีกระโดดจากแหล่งข้อมูลออนไลน์หรืออัพเดต / อัปเดตอัตโนมัติ คุณสามารถเชื่อมต่ออินเทอร์เน็ตเพื่อขอรับสิ่งนี้หากคุณต้องการ อย่างไรก็ตามคุณสามารถเชื่อมต่อกับ URL ที่มีมาก่อนความท้าทายนี้ (เช่นไม่มีการดาวน์โหลดบางส่วนของโปรแกรมของคุณจากที่อื่น) และคุณไม่สามารถใช้การเชื่อมต่อเพื่อกำหนดเวลาปัจจุบันได้ (โดยเฉพาะ: โปรแกรมของคุณจะต้องทำงาน อินเทอร์เน็ตจะแสดงหน้าเว็บที่เก่าถึง 24 ชั่วโมง) API เริ่มต้นของระบบปฏิบัติการส่วนใหญ่สำหรับเวลาปัจจุบันจะเอียงเวลาประมาณวินาทีกระโดดเพื่อซ่อนพวกเขาจากโปรแกรมที่อาจสับสน ดังนั้นปัญหาหลักของความท้าทายนี้คือการหาวิธีการหรือ API เพื่อเลิกทำเช่นนั้นและหาเวลาปัจจุบันที่ไม่มีการแก้ไขจริงใน UTC ในทางทฤษฎีแล้วโปรแกรมของคุณควรมีความแม่นยำอย่างสมบูรณ์แบบหากมันทำงานบนคอมพิวเตอร์ที่เร็วและไม่มีค่าใช้จ่าย (แน่นอนว่าในทางปฏิบัติโปรแกรมของคุณจะทำงานบนคอมพิวเตอร์ที่ไม่สมบูรณ์ดังนั้นอาจไม่ทำงานทันทีคุณไม่ต้องกังวลกับผลการตรวจสอบที่ไม่ถูกต้อง แต่จะต้องไม่ขึ้นอยู่กับความถูกต้องของโปรแกรมของคุณ ) โปรแกรมของคุณจะต้องทำงานโดยไม่คำนึงถึงเขตเวลาที่นาฬิการะบบตั้งไว้เป็น (อย่างไรก็ตามอาจขอข้อมูลจากระบบปฏิบัติการหรือสภาพแวดล้อมว่ามีการใช้เขตเวลาใดและอาจคิดว่าคำตอบนั้นถูกต้อง) ในฐานะที่เป็น รหัสกอล์ฟโปรแกรมที่สั้นที่สุดชนะ โชคดี!

4
ไฟของเว็บแคมกะพริบ!
ความท้าทายนี้เป็นแรงบันดาลใจBlink แป้น Caps Lockโดยเรือเหาะ เว็บแคมส่วนใหญ่มีไฟ LED ในตัวขนาดเล็กระบุว่ามีการใช้งานเว็บแคมหรือไม่ซึ่งควบคุมโดยกลไกฮาร์ดแวร์เพื่อป้องกันการสอดแนม งานของคุณคือการกระพริบตา: เปิด. รอ 0.5 (± 0.1) วินาที ปิดอีกครั้ง รอ 0.5 (± 0.1) วินาที ทำซ้ำ โปรดระบุ GIF หรือวิดีโอของเว็บแคมที่กะพริบถ้าเป็นไปได้ หากคำตอบไม่มี GIF โปรดเพิ่ม GIF ของโปรแกรมที่ทำงานอยู่ กฎระเบียบ หากภาษาของคุณไม่มีsleepคำสั่งsubsecond โปรแกรมของคุณอาจใช้เวลาหน่วง 1 วินาทีแทนโดยมีค่าปรับเพิ่มเป็นไบต์ (แทนที่.5ด้วย1) หากภาษาของคุณไม่รองรับด้วยเหตุผล.5ของคุณการลงโทษของคุณคือ 2 ไบต์ (แทนที่0.5ด้วย1) โปรแกรมของคุณต้องวนซ้ำเว้นแต่ผู้ใช้จะหยุด LED ของคุณสามารถเปิดหรือปิดได้ แล้วแต่จำนวนใดจะมีประโยชน์มากกว่าสามารถนำมาใช้ หาก LED ของคุณมีความล่าช้าในการปิดเครื่องก็ไม่จำเป็นต้องนำมาพิจารณาหากคุณไม่ต้องการให้มีเวอร์ชั่นเพิ่มเติม ดูความคิดเห็นนี้และคำตอบสำหรับข้อมูลเพิ่มเติม เกณฑ์การให้คะแนน นี่คือ รหัสกอล์ฟซึ่งหมายถึงคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

4
เท่ากับชนิดวงเล็บเหลี่ยม
บนพื้นฐาน นี้คำถาม กำหนดสตริงแทนที่แต่ละวงเล็บ()[]{}<>ด้วยวงเล็บของประเภทที่เหมาะสมเพื่อให้วงเล็บจับคู่และรอบซ้อนกันวงเล็บดังนี้ สิ่งที่อยู่นอกสุดคือ () ()ควรจะอยู่ข้างในโดยตรง[] []ควรจะอยู่ข้างในโดยตรง{} {}ควรจะอยู่ข้างในโดยตรง<> ด้านในตรงจาก<>จะเป็น()อีกครั้ง (รอบ) ตัวอักษรที่ไม่ใช่วงเล็บทั้งหมดจะต้องคงอยู่เหมือนเดิม วงเล็บเปิดอาจถูกแทนที่ด้วยวงเล็บเปิดบางชนิดเท่านั้นและปิดวงเล็บด้วยวงเล็บปิด อินพุตจะทำให้เป็นไปได้เสมอ นี่หมายความว่าวงเล็บนั้นจับคู่อย่างถูกต้องหากไม่ระบุประเภท ดังนั้น{ab<)c]เป็นอินพุตที่ถูกต้อง แต่มีab)(cdหรือab((cdไม่ ตัวอย่าง: 2#jd {¤>. = 2#jd (¤). abcdef = abcdef (3×5+(4-1)) = (3×5+[4-1]) <<<>><<>><<<<<<>>>>>>> = ([{}][{}][{<([{}])>}]) ไม่อนุญาตให้ใช้การแปลงดั้งเดิมของอินพุตด้วยวิธีนี้ (ไวยากรณ์ภาษาอัตโนมัติ) เช่นเคย: รหัสที่สั้นที่สุดชนะ

2
โปรแกรมรวบรวมข้อมูล 2D Dungeon
โปรแกรมของคุณต้องใช้สตริงที่มีหลายแถวเช่นนี้ ############# # # # p # # # ############# pเป็นผู้เล่นและ#เป็นบล็อก ตอนนี้ภายใต้ที่ใน terminal ควรเป็นสายอินพุตพูดว่า: How do you want to move? หากผู้เล่นประเภทที่lเขาต้องเดินออกไปเมื่อไม่มีบล็อกอื่น ๆ เมื่อมีบล็อกเขาไม่สามารถผ่านและไม่ย้ายแน่นอนตอนนี้เอาท์พุทใน terminal จะต้องมีการปรับปรุง ( และเอาต์พุตก่อนหน้าจะถูกล้าง / เขียนทับ): ############# # # # p # # # ############# เขาสามารถพิมพ์lซ้ายซ้ายrขวาuขึ้นและdลง อินพุตจะเป็นแบบหลายบรรทัดเสมอ แต่จะไม่ถูกเติมด้วยช่องว่างในสี่เหลี่ยมที่สมบูรณ์แบบเสมอ นอกจากนี้แฮชสามารถอยู่ที่ใดก็ได้ในสตริงและจะไม่เชื่อมต่อกันเสมอ ตัวอย่างเช่น: ## ## # # ## p # …

1
รวบรวมถังขยะ
คุณกำลังมองไปที่ถนนและมีบางคนทิ้งขยะ! คุณต้องเขียนโปรแกรมเพื่อช่วยแก้ไขปัญหาโดยการทิ้งขยะลงในถังขยะ งาน avenue ประกอบด้วยสตริงของอักขระ ASCII ที่พิมพ์ได้เช่น: [[](dust)[]] car ((paper)vomit) (broken(glass)) [[] (rotten) fence (dirty) วงเล็บบางตัวที่นี่ไม่มีที่เปรียบ นั่นเป็นเพียงล่อ สิ่งที่เราใส่ใจคือชุดของวงเล็บที่ตรงกัน ถังขยะเป็นสตริงที่เริ่มต้นด้วย[และลงท้ายด้วย]และมีวงเล็บจับคู่ภายในและวงเล็บ ตัวอย่างเช่น[]และ[[](dust)[]]เป็นถังขยะในสตริงด้านบน ถุงขยะเป็นสตริงที่เริ่มต้นด้วย(และลงท้ายด้วย)และมีวงเล็บจับคู่ภายในและวงเล็บ ตัวอย่างเช่น(dust)เป็นถุงขยะในสตริงด้านบน เป็นไปได้ว่าถุงขยะบางส่วนอยู่ในถังขยะแล้ว อย่างไรก็ตามจะมีอย่างน้อยหนึ่งรายการที่ถูกทิ้งไว้และเราจำเป็นต้องย้ายถุงขยะเพื่อให้พวกเขาทั้งหมดอยู่ในถังขยะ โดยเฉพาะสำหรับถุงขยะแต่ละถุงที่ไม่ได้อยู่ในถังขยะในปัจจุบัน (เช่นซับสตริงของถังขยะนั้น) เราต้องลบมันออกจากตำแหน่งปัจจุบันในสตริงและแทรกลงในสถานที่ที่อยู่ในถังขยะแทน . มีกฎเพิ่มเติมที่นี่ เนื่องจากเราไม่ต้องการใช้เงินมากเกินไปกับนักสะสมขยะและเส้นทางของพวกเขาพาพวกเขาไปตามถนนจากทางซ้ายไปขวาเราต้องการย้ายถุงขยะแต่ละใบไปทางซ้าย (เกณฑ์ที่สำคัญที่สุดสมมติว่าเราต้องย้ายที่ ทั้งหมด) และระยะทางที่สั้นที่สุดเท่าที่จะทำได้ (ตราบเท่าที่มันถูกย้ายไปทางซ้าย) ตัวอย่างเช่นเอาต์พุตที่ถูกต้องเท่านั้นสำหรับ [can1](bag)[can2] คือ [can1(bag)][can2] (เลื่อนถุงไปทางซ้ายหนึ่งตัวอักษร) นอกจากนี้ถุงต้องอยู่ในลำดับที่สัมพันธ์กัน: [can](bag1)(bag2) ต้องเป็น [can(bag1)(bag2)] (เช่นคุณไม่สามารถวาง(bag2)ที่ด้านซ้ายของ(bag1)) ชี้แจง จะไม่มีถุงขยะอยู่ทางซ้ายของถังขยะซ้ายสุด มันจะเป็นไปได้ที่จะสามารถทิ้งขยะทั้งหมดด้วยการย้ายไปทางซ้าย จะต้องมีอย่างน้อยหนึ่งถุงที่จะย้าย อาจมีมากกว่าหนึ่ง จะไม่มีถังขยะอยู่ในถุงขยะ …

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