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

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

13
นับตัวอักษรเปลี่ยนเป็นตัวเลข
ปัญหา: คุณต้องสร้างโปรแกรมที่ทำสิ่งต่อไปนี้: ใช้สตริงตัวพิมพ์เล็กจำนวนมากและนับจำนวนการเกิดทั้งหมดของตัวอักษรแต่ละตัว จากนั้นคุณใส่ตัวอักษรตามลำดับจากมากไปน้อย จากนั้นคุณนำรายการนั้นและเปลี่ยนเป็นตัวเข้ารหัส / ตัวถอดรหัสสำหรับข้อความ จากนั้นเข้ารหัสข้อความด้วยตัวเลขนั้น ยากที่จะเข้าใจ? ดูตัวอย่างนี้: ตัวอย่าง: ข้อความที่ป้อน: Lorem ipsum dolor sit amet, consipetur adipiscing elit. Nunc sed dui at nisi euismod pellentesque ac sed enim. ไม่มีใครรู้ว่าเพียงแค่คุณเป็นคนดี, eu fringilla เป็น porttitor. Pellentesque vel pharetra nisl Vestgulum สวมบทบาท ultrices magna a fringilla นักเขียนที่น่าสนใจ, ผู้ที่ชื่นชอบการถ่ายภาพฉากหลัง, สิ่งอำนวยความสะดวกอื่น ๆ , …
9 code-golf 

2
Backtickify ตัวอย่างรหัสในการแลกเปลี่ยนสแต็ค
เป้าหมายของคุณคือการป้อนข้อความโดยพลการใด ๆ เช่น: This is some text และเอาท์พุทข้อความที่จัดรูปแบบเป็นรหัสสำหรับการโพสต์ (SE-flavored Markdown) และความคิดเห็น (mini-Markdown) บน Stack Exchange เช่น: `This is some text` `This is some text` อย่างไรก็ตามมันยากขึ้น พิจารณาอินพุต: Perl has a variable called $` ผลลัพธ์จะต้องเป็น `` Perl has a variable called $` `` `Perl has a varaible called $\`` กฎเต็มรูปแบบสำหรับการจัดรูปแบบคือ: โพสต์แบบเต็ม (Markdown …
9 code-golf 

8
Missy Elliot, XKCD และ ASCII Bytes
แรงบันดาลใจจากการ์ตูน XKCD ต่อไปนี้: ใน Missy Elliot's "ทำงานมัน" ส่วนหนึ่งของคอรัสจะเป็นดังนี้: Is it worth it, let me work it I put my thing down, flip it and reverse it จำไว้ว่าในใจฉันขอเสนอการแข่งขันกอล์ฟรหัสต่อไปนี้: สร้างรหัสตามลำดับ: รับอินพุต ASCII 8 บิตจาก STDIN เช่นn(Hex 6E หรือ Bin 01101110) เลื่อน 8 บิตของแต่ละไบต์ลงไปในระดับ 1 บิต (ฉันเชื่อว่ามันเรียกว่าการเลื่อนบิตล่าง) เช่น01101110จะกลายเป็น00110111("วางสิ่งที่ฉันลง"); แปลงบิตของแต่ละไบต์เช่น00110111กลายเป็น11001000("พลิก"); ฝืนบิตสำหรับแต่ละไบต์เช่น11001000กลายเป็น00010011 ("ย้อนกลับ"); หากค่าของไบต์น้อยกว่า 32 …

2
ตรวจสอบว่าแก้ปริศนา 15 ข้อได้หรือไม่
ตัวต่อสิบห้าตัวนั้นมีลักษณะแปลกประหลาดเพียงครึ่งเดียวเท่านั้นที่สามารถแก้ไขได้ หากคุณพลิกกระเบื้อง 14 และ 15 ไม่มีวิธีที่คุณสามารถเลื่อนบล็อกเพื่อให้พวกเขาพลิกกลับ งานของคุณคือการสร้างโปรแกรมที่ยอมรับรายการจำนวนเต็มในรูปแบบที่คุณเลือก (ประกอบด้วยหนึ่งอินสแตนซ์ของแต่ละหมายเลขตั้งแต่ 0 ถึง 15 โดยที่ 0 เป็นพื้นที่ว่าง) แสดงสถานะของการจัดเรียงของไพ่ใน กริด 4x4 และส่งออกค่าบูลีนเดี่ยวเพื่อพิจารณาว่ากริดสามารถแก้ไขได้หรือไม่ รหัสที่สั้นที่สุดที่จะทำในภาษาใดก็ได้ชนะ

5
การจัดรูปแบบสตริงสไตล์ printf
ท้าทาย เขียนฟังก์ชั่นที่ใช้การprintfจัดรูปแบบสตริงC- style กฎระเบียบ คุณจะต้องดำเนินการอย่างน้อย%%, %c, %s, และ%d%f คุณต้องไม่ใช้วิธีการจัดรูปแบบสตริงในตัว คุณต้องไม่เรียกใช้โปรแกรมภายนอกหรือเชื่อมต่ออินเทอร์เน็ตจากโปรแกรมของคุณ มันขึ้นอยู่กับคุณที่จะตัดสินใจว่าจะจัดการกับอินพุตที่ไม่ถูกต้อง แต่โปรแกรมของคุณจะต้องไม่หยุดอย่างผิดปกติ คุณควรเขียนฟังก์ชัน Variadicถ้าเป็นไปได้ คำสำคัญ "ต้อง", "ไม่ต้อง", "จำเป็นต้องใช้", "ไม่ควร", "ไม่ควร", "ไม่ควร", "ไม่ควร", "แนะนำ", "อาจ" และ "ตัวเลือก" ในเอกสารนี้ จะตีความตามที่อธิบายในRFC 2119

9
เขียนตัวเลขเป็นผลรวมฟีโบนักชี
ให้เรากำหนดลำดับฟีโบนักชีเป็น F(1) = 1 F(2) = 2 F(n) = F(n - 2) + F(n - 1) ดังนั้นเราจึงมีลำดับไม่สิ้นสุด1,2,3,5,8,13,... เป็นที่ทราบกันดีว่าเลขจำนวนเต็มบวกใด ๆ สามารถเขียนเป็นผลรวมของตัวเลขฟีโบนักชีบางส่วนได้ ข้อแม้เดียวคือการรวมนี้อาจไม่ซ้ำกัน มีอย่างน้อยหนึ่งวิธีในการเขียนตัวเลขเป็นผลรวมของตัวเลขฟีโบนักชี แต่อาจมีอีกมากมาย ความท้าทายของคุณคือการเขียนโปรแกรมที่สมบูรณ์ซึ่งใช้ stdin จะใช้จำนวนเต็มบวกระหว่างหนึ่งถึงหนึ่งล้านรวมแล้วเอาท์พุทโดยใช้ stdout การสรุปที่เป็นไปได้ทั้งหมดของหมายเลขฟีโบนักชีซึ่งรวมถึงอินพุต ในการสรุปหมายเลขฟีโบนัชชีต้องไม่ซ้ำและรวมถึงหมายเลข1นั้น ในการสรุปใด ๆ หาก1มีอยู่จะต้องแสดงเพียงครั้งเดียวเท่านั้นเนื่องจากในคำจำกัดความของลำดับข้างต้น1ปรากฏเพียงครั้งเดียว การสรุปที่มีคำศัพท์เพียงอย่างเดียวนั้นจะถูกต้องดังนั้นหากหมายเลขอินพุตคือหมายเลขฟีโบนักชีเองดังนั้นตัวเลขนั้นจึงเป็นผลรวมที่ถูกต้องและต้องพิมพ์ หากผลรวมหลายค่าระหว่างสองจำนวนใด ๆ จะต้องมีบรรทัดว่างเพื่อแยกความแตกต่างระหว่างพวกเขาได้อย่างง่ายดาย นี่คือตัวอย่างบางส่วน ./myfib 1 1 มีเพียงผลรวมเดียวและมีคำศัพท์เพียงอย่างเดียวนั่นคือทั้งหมดที่พิมพ์ออกมา ./myfib 2 2 โปรดทราบว่านี่1+1ไม่ใช่ผลรวมที่ถูกต้องเพราะ1ซ้ำ ./myfib 3 1+2 3 สองจำนวนเงินและพวกเขาทั้งสองพิมพ์ด้วยบรรทัดว่างในระหว่าง …

3
แยกสตริงตัวอักษร Python
ความท้าทายคือการแยกสตริงเช่น Python ทำและพิมพ์เนื้อหาของสตริง อินพุต (อาร์กิวเมนต์บรรทัดรับคำสั่งหรือ stdin) : สตริงตัวอักษร (เช่น"hello") (หรือหลายตัวอักษรดูการเรียงสตริงตามตัวอักษรด้านล่าง) เอาท์พุท (stdout) : เนื้อหาของสตริง (เช่นhello) กฎสำหรับการวิเคราะห์คำสตริง: สตริงตัวอักษรถูกล้อมรอบในการจับคู่คู่ของอัญประกาศเดี่ยว ( 'a'), อัญประกาศคู่ ( "a"), อัญประกาศเดี่ยวเดียว ( '''a''') หรืออัญประกาศคู่ ( """a""") การกลับเป็นซ้ำครั้งแรกของชนิดของอัญประกาศที่เปิดสตริงสิ้นสุดสตริง ทับขวาหนี: \'ภายในสตริงกลายเป็น', \"กลายเป็น"และจะกลายเป็น\\ \คุณไม่จำเป็นต้องใช้เครื่องหมายแบคสแลชอื่น ๆ แบ็กสแลชที่ไม่ได้เป็นส่วนหนึ่งของลำดับการหลีกเลี่ยงยังคงเป็นแบ็กสแลช การต่อข้อมูลตามตัวอักษรสตริง:เนื้อหาของตัวอักษรสตริงที่อยู่ติดกันถูกต่อกัน ยกตัวอย่างเช่นจะกลายเป็น"hello" 'world'helloworld อินพุตอาจมีช่องว่างที่ไม่ได้เป็นส่วนหนึ่งของตัวอักษรใด ๆ คุณไม่จำเป็นต้องสนับสนุนช่องว่างชนิดอื่น ๆ ทั้งที่อยู่ในและนอกตัวอักษร กฎเพิ่มเติม: eval, execและสิ่งที่คล้ายกันคือไม่ได้รับอนุญาตสำหรับการแยกตัวอักษรหรือบางส่วนของมัน คุณอาจคิดว่าอินพุตนั้นถูกต้อง คุณอาจสันนิษฐานว่ามีความยาวอินพุตได้สูงสุด 1,023 อักขระ …

4
รูปแบบเครื่องตัดหญ้า
นำมาจากGoogle รอบการคัดเลือก Code 2013 ปัญหารอบ B : อลิซกับบ็อบมีสนามหญ้าหน้าบ้านของพวกเขามีรูปร่างเหมือน N เมตรโดยสี่เหลี่ยมผืนผ้า M เมตร ในแต่ละปีพวกเขาพยายามตัดหญ้าในรูปแบบที่น่าสนใจ พวกเขาเคยตัดด้วยกรรไกรซึ่งใช้เวลานานมาก แต่ตอนนี้พวกเขามีเครื่องตัดหญ้าอัตโนมัติใหม่พร้อมการตั้งค่าหลายแบบและพวกเขาต้องการลองใช้ เครื่องตัดหญ้าแบบใหม่มีการตั้งค่าความสูง - คุณสามารถตั้งค่าเป็นความสูง h ใด ๆ ระหว่าง 1 ถึง 100 มิลลิเมตรและมันจะตัดหญ้าทั้งหมดที่สูงกว่า h พบกับความสูง h คุณรันมันโดยเข้าไปที่สนามหญ้าที่ส่วนใดของขอบสนามหญ้า จากนั้นเครื่องตัดหญ้าจะเป็นเส้นตรงตั้งฉากกับขอบสนามหญ้าที่เข้ามาตัดหญ้าในแนวกว้าง 1 เมตรจนกระทั่งมันออกจากสนามหญ้าไปอีกด้านหนึ่ง ความสูงของเครื่องตัดหญ้าสามารถตั้งค่าได้เฉพาะเมื่อไม่ได้อยู่บนสนามหญ้า อลิซกับบ็อบมีหญ้าหลายแบบที่พวกเขาสามารถมีได้บนสนามหญ้า สำหรับแต่ละคนพวกเขาต้องการทราบว่าเป็นไปได้ที่จะตัดหญ้าในรูปแบบนี้ด้วยเครื่องตัดหญ้าแบบใหม่ของพวกเขาหรือไม่ แต่ละรูปแบบอธิบายโดยระบุความสูงของหญ้าในแต่ละสนามหญ้าขนาด 1 ม. x 1 ม. ต้นหญ้าสูง 100 มม. บนสนามหญ้าทั้งหมด เขียนฟังก์ชั่นที่ใช้ความสูงของจำนวนเต็มสองมิติและพิจารณาว่าสามารถตัดหญ้าได้หรือไม่ ต่อไปนี้เป็นกรณีทดสอบ 100 รายการจาก …
9 code-golf 

8
เครื่องคิดเลขประตูตรรกะที่เรียบง่าย
ภารกิจของคุณถ้าคุณเลือกที่จะยอมรับมันก็คือการสร้างผู้ประเมินความจริงแบบง่าย ๆ สำหรับผู้ประกอบการเชิงตรรกะดังต่อไปนี้: ---------------------------------------------------------------------------------- Logical Name | Gate Name | Symbol | Symbol Name | Truth Table ---------------------------------------------------------------------------------- Identity | is | | (none) | 10 Negation | not | ~ | tilde | 01 Conjunction | and | & | ampersand | 1000 Disjunction | or | | | …

1
เขียนตัวแก้ปัญหาการไหลของ ASP / Prolog / SAT
Flow Free เป็นเกมแอนดรอยด์ที่น่าติดตามซึ่งคุณต้องเชื่อมต่อคู่ธาตุต่างๆเข้าด้วยกันผ่านงูที่ไม่ทับซ้อนกันและเติมเต็มทั้งกริด สำหรับคำอธิบายดูที่นี่: https://play.google.com/store/apps/details?id=com.bigduckgames.flow&hl=en ฉันมีโซลูชัน ASP (ชุดคำตอบการเขียนโปรแกรม) ซึ่งเป็นเพียงกฎคู่และฉันไม่คิดว่ามันจะเป็นไปได้ที่จะพูดถึงวิธีการแก้ปัญหาเดียวกันเกือบจะรัดกุมเช่นกรณี SAT แต่ฉันสนใจที่จะพิสูจน์ผิด ภาษาใดก็ได้ แต่ฉันสงสัยว่ามันสามารถทำได้อย่างกระชับโดยไม่ต้องใช้ตัวแก้ปัญหาบางชนิดซึ่งเป็นสาเหตุที่ฉันติดป้ายว่า ASP / Prolog / SAT ผู้ชนะคือตัวละครน้อยที่สุด คุณอาจคิดว่าปัญหาถูกกำหนดโดยใช้ภาคแสดง: v(V). % A vertex a(V,W). % V and W are adjacent c(C). % A color s(V,C). % V is an endpoint of color C นอกจากนี้อินพุตยังเป็นที่น่าพอใจ a(W,V) :- a(V,W) % Adjacencies …
9 code-golf 

5
คำไตรภาค Squarefree ที่มีความยาวตามอำเภอใจ
สตริงเป็นsquarefreeถ้าไม่มี substring สองครั้งในแถว มันเป็นไปได้ที่จะมีคำ squarefree ยาวโดยพลการโดยใช้ตัวอักษร 3 ตัว จงเขียนโปรแกรมที่รับเป็นจำนวนเต็มบวก n จาก stdin และพิมพ์คำ squarefree ใด ๆ ของความยาว n โดยใช้ตัวอักษรA, และBC รหัสที่สั้นที่สุดชนะ

14
แสดงเศษส่วนต่อเนื่อง
ความท้าทายของคุณคือการแปลงเศษส่วนเป็นรูปแบบเศษส่วนต่อเนื่อง อินพุต : เศษส่วนอาจป้อนเข้าในรูปแบบใด ๆ รวมถึง (แต่ไม่ จำกัด เฉพาะ) สตริง: "7/16" รายการ: {7, 16}, (7, 16), [7, 16] คู่ที่เรียบง่ายสั่ง: 7 16 ฟังก์ชั่น: f [7,16] เอาท์พุท : เศษส่วนต่อเนื่องใน 2D โดยมีเศษส่วนแนวนอนคั่นตัวเศษจากส่วน มีเพียงเศษส่วนต่อเนื่องที่มีตัวเลขเท่ากับ 1 เท่านั้นที่ถูกต้อง ไม่จำเป็นต้องทำให้ขนาดตัวอักษรแตกต่างกันไปตามความลึก ศูนย์นำหน้า (สำหรับเศษส่วนที่เหมาะสม) เป็นทางเลือก ความลึก : รหัสของคุณจะต้องสามารถแสดงความลึกอย่างน้อย 8 ระดับ เกณฑ์การชนะ : รหัสที่สั้นที่สุดชนะ คุณต้องมีกรณีทดสอบหลายรายการที่แสดงอินพุตและเอาต์พุต ตัวอย่างทดสอบ (อินพุตตามด้วยเอาต์พุต) 5/4 5/3 5/7 …

3
สร้างนักฆ่า Sudoku Solver
คุณคิดว่าซูโดกุประจำนั้นยากตอนนี้ลองKiller Sudoku ! ในเกม Killer Sudoku คุณจะไม่ได้รับหมายเลขใด ๆ เลย แต่คุณจะได้รับภูมิภาคที่ถูกกล่าวเพิ่มขึ้นเป็นจำนวนหนึ่งแทน ลองพิจารณาตัวอย่างต่อไปนี้จาก Wikipedia: และวิธีการแก้ปัญหา: โปรแกรมที่คุณเขียนจะอยู่ในรูปแบบที่ประกอบด้วยลำดับ 81 ตัวอักษรที่แสดงถึงภูมิภาคตามด้วยตัวเลข จากนั้นแต่ละหมายเลขในลำดับจะแสดงผลรวมของตัวเลขในแต่ละภูมิภาคของตัวอักษรเริ่มต้นจาก "A", "B" เป็นต้น จากนั้นจะส่งออกลำดับ 81 หลักที่เป็นตัวแทนของการแก้ปัญหา ตัวอย่างเช่นตัวต่อตัวอย่างด้านบนจะมีอินพุตต่อไปนี้: AABBBCDEFGGHHCCDEFGGIICJKKFLMMINJKOFLPPQNJOORSPTQNUVVRSTTQWUUXXSYZWWaaXXSYZWbbbcc 3 15 22 4 16 15 25 17 9 8 20 6 14 17 17 13 20 12 27 6 20 6 10 14 8 …

2
บีบอัดข้อมูลด้วยไวยากรณ์ที่ไม่มีบริบท
เป็นไปได้ที่จะบีบอัดข้อมูลบางประเภทเช่นข้อความของมนุษย์หรือซอร์สโค้ดด้วยไวยากรณ์แบบเส้นตรง โดยทั่วไปคุณสร้างไวยากรณ์ที่ภาษามีคำเดียว - ข้อมูลที่ไม่ได้บีบอัด ในงานนี้คุณต้องเขียนโปรแกรมที่ใช้วิธีการประมวลผลข้อมูลนี้ อินพุต อินพุตเป็นสตริงที่มีความยาวไม่เกิน 65535 ไบต์ มีการประกันว่าอินพุตนั้นตรงกับนิพจน์ทั่วไป[!-~]+(เช่นอย่างน้อยหนึ่งตัวอักษร ASCII ที่พิมพ์ได้ซึ่งไม่รวมช่องว่าง) ตัวอย่างอินพุตคือ abcabcbcbcabcacacabcabab เอาท์พุต เอาท์พุทเป็นชุดของกฎที่เป็นไวยากรณ์ที่อธิบายว่าหนึ่งคำ (อินพุต) แต่ละ nonterminal จะแทนด้วยตัวเลขทศนิยมมากกว่า 9 สัญลักษณ์เริ่มต้นคือหมายเลขสัญลักษณ์สิบ เอาต์พุตตัวอย่างที่สอดคล้องกับอินพุตตัวอย่างได้รับด้านล่าง ไวยากรณ์ของมันจะอธิบายเพิ่มเติมด้านล่าง: 10=11 11 12 12 11 13 13 11 14 14 11=a 12 12=b c 13=a c 14=a b แต่ละกฎมีรูปแบบที่<nonterminal>=<symbol> <symbol> ...มีจำนวนของสัญลักษณ์ที่คั่นด้วยช่องว่างโดยพลการทางด้านขวา แต่ละเอาต์พุตที่ปฏิบัติตามข้อ จำกัด ต่อไปนี้และได้รับสตริงอินพุตที่ถูกต้อง ข้อ จำกัด …

21
สร้างชุดค่าผสมที่มีคำสั่งด้วยการทำซ้ำ
กำหนดสตริงของอักขระที่แตกต่างกันและตัวเลข n สร้างชุดค่าผสมที่เรียงลำดับทั้งหมดด้วยการทำซ้ำความยาว 1 ถึง n โดยใช้อักขระเหล่านั้น อีกวิธีในการกำหนดคือดูอักขระที่กำหนดเป็นตัวเลข "กำหนดเอง" ในฐาน (radix) ของจำนวนอักขระจากนั้นโปรแกรมควรสร้าง "ตัวเลข" ทั้งหมดที่มี 1 ถึง n หลักในฐานนั้น "ศูนย์" รวมอยู่ด้วย ชุดค่าผสมควรเรียงตามความยาว (1 ตัวอักษรก่อนจากนั้น 2 และอื่น ๆ ) แต่นอกเหนือจากนั้นสามารถเรียงลำดับได้ คุณสามารถเลือกวิธีที่สะดวกที่สุดในการจัดการอินพุตและเอาต์พุต รหัสที่สั้นที่สุดชนะ ตัวอย่าง: ab, 3-> a,b,aa,ab,ba,bb,aaa,aab,aba,baa,abb,bab,bba,bbb 0123456789, 2->0,1,2,3,4,5,6,7,8,9,00,01,...,09,10,11,...,99

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