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

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

14
แปลงเป็น camelCase
ความท้าทาย ฉันอ่านJava Style Guide ของ Googleเมื่อวันก่อนและสะดุดอัลกอริทึมของพวกเขาเพื่อแปลงสตริใด ๆ ให้เป็นสัญกรณ์ camelCase ในการท้าทายนี้คุณต้องใช้อัลกอริทึมนี้เนื่องจากคุณไม่ต้องการทำสิ่งนี้ทั้งหมดในหัวของคุณเมื่อคุณเขียนการส่งจาวาที่มีการแข่งขันสูงเพื่อความท้าทายของโค้ด - กอล์ฟ หมายเหตุ: ฉันทำการปรับเปลี่ยนเล็กน้อยกับอัลกอริทึม คุณต้องใช้สิ่งที่ระบุด้านล่าง อัลกอริทึม คุณเริ่มต้นด้วยสตริงอินพุตที่กำหนดเองและใช้การดำเนินการต่อไปนี้กับมัน: ลบเครื่องหมายอะโพสโทรฟีทั้งหมด `' แยกผลลัพธ์ออกเป็นคำโดยแยกที่ อักขระที่ไม่ใช่ตัวอักษรผสมตัวเลขและไม่ใช่ตัวเลข [^a-zA-Z0-9] ตัวอักษรตัวพิมพ์ใหญ่ซึ่งล้อมรอบด้วยตัวพิมพ์เล็กทั้งสองด้าน abcDefGhI jkเช่นอัตราผลตอบแทนabc Def Ghi jk พิมพ์เล็กทุกคำ ตัวพิมพ์ใหญ่ตัวแรกของทุกคำยกเว้นคำแรก เข้าร่วมทุกคำกลับมารวมกัน หมายเหตุเพิ่มเติม อินพุตจะมีเฉพาะ ASCII ที่พิมพ์ได้ หากตัวเลขเป็นตัวอักษรตัวแรกของคำให้ปล่อยให้เป็นไปตามที่เป็นอยู่และอย่าเพิ่มสิ่งอื่นใดในคำนี้ อินพุตจะมีอักขระอย่างน้อยหนึ่งตัวเสมอ กฎระเบียบ อนุญาตให้ใช้ฟังก์ชั่นหรือโปรแกรมเต็มรูปแบบ กฎเริ่มต้นสำหรับอินพุต / เอาต์พุต ช่องโหว่มาตรฐานใช้ นี่คือcode-golfดังนั้นจำนวนไบต์ที่น้อยที่สุดจึงชนะ Tiebreaker เป็นการส่งก่อนหน้า กรณีทดสอบ "การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ" …
34 code-golf  string 

18
โดมิโนตัวใดหายไป
ชุดโดมิโนมาตรฐานมี 28 ชิ้นไม่ซ้ำกัน: รับรายการของแต้มโดมิโนที่ไม่ซ้ำกัน 28 ตัวหรือน้อยกว่าเอาท์พุทรายการที่จำเป็นเพื่อสร้างชุดสมบูรณ์ input และ output แต้มที่ระบุไว้โดยตัวเลขสองหลัก - จำนวนของจุดในแต่ละด้านของโดมิโนเช่น00, 34, ,4066 อาจกำหนดตัวเลขในลำดับใดก็ได้ดังนั้นจึง34เป็นโดมิโนเดียวกันกับ43 อินพุตตัวอย่าง 00 01 02 03 04 05 06 11 12 13 14 15 16 22 23 24 25 26 33 34 35 36 44 45 46 55 56 66 00 10 11 20 21 22 …

21
เอาต์พุตสตริงทั้งหมด
ให้ชุดของตัวอักษรเอาท์พุทสายทั้งหมดที่ทำจากตัวอักษรเหล่านั้น (นี่คือดาว Kleeneของชุด) ตัวอย่างเช่นสำหรับ{'a','b'}สตริงคือ: '', 'a', 'b', 'aa', 'ab', 'ba', 'bb', 'aaa', 'aab', ... : การป้อนข้อมูลa..zคอลเลกชันที่ไม่ว่างเปล่าของตัวอักษรที่แตกต่างกัน สิ่งเหล่านี้อาจเป็นอักขระหรือสตริงอักขระเดี่ยว เอาท์พุท:สตริงทั้งหมดในตัวอักษรเหล่านั้นในลำดับใด ๆ โดยไม่ต้องทำซ้ำ คุณสามารถใช้รายการตัวอักษรเป็นสตริง นี่คือรายการที่ไม่มีที่สิ้นสุดดังนั้นคุณสามารถส่งออกได้โดย: วิ่งตลอดไปเขียนสตริงมากขึ้นเรื่อย ๆ สตริงเหล่านี้สามารถเขียนได้ในรูปแบบที่คั่นแบบแบนใด ๆ ซึ่งหมายความว่าคุณสามารถบอกได้ว่าแต่ละสตริงจะจบลงที่ใด แต่สตริงนั้นจะไม่ถูกแบ่งย่อยออกเป็นกลุ่ม รับตัวเลขnเป็นอินพุตและเอาต์พุตnสตริงแรกในรูปแบบที่คั่นแบบแบนใด ๆ การให้แต่ละสตริงหันจากวัตถุตัวสร้าง การผลิตวัตถุที่ไม่มีที่สิ้นสุด ตรวจสอบให้แน่ใจว่าในที่สุดเมธอดของคุณจะสร้างสตริงทุกตัวในเอาต์พุตเนื่องจากเป็นไปได้ที่จะสร้างสตริงจำนวนมากจากชุดในขณะที่ไม่เคยไปถึงบางสตริง คุณไม่สามารถส่งออกได้โดย การผลิตnสตริงที่ได้รับn จัดเตรียม Oracle oracle สำหรับสมาชิกที่ตัดสินใจว่าสตริงที่กำหนดนั้นเป็นของชุดหรือไม่ อนุญาตให้ใช้บิวด์อินได้ แต่ฉันขอให้ผู้ลงคะแนนให้ความสนใจกับคำตอบที่นำไปใช้ในการดำเนินการด้วยตัวเองเหนือสิ่งที่ต้องพึ่งพาในตัว แสดงตัวอย่างโค้ด var QUESTION_ID=74273,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/74273/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return …
34 code-golf  string 

30
Yahtzee การตรวจจับเส้นตรงขนาดเล็ก
ในเกมYahtzeeผู้เล่นกลิ้งลูกเต๋าหกด้านห้าลูกและพยายามสร้างมือที่แน่นอนเพื่อทำคะแนน มือข้างหนึ่งเป็นเส้นตรงเล็ก ๆ : สี่หมายเลขติดต่อกันไม่จำเป็นต้องเรียงตามลำดับ สาม straights ขนาดเล็กที่เป็นไปได้1, 2, 3, 4, และ2, 3, 4, 53, 4, 5, 6 ตัวอย่างเช่นมีตรงขนาดเล็ก[3, 5, 6, 1, 4][3, 4, 5, 6] อินพุต รายการที่ไม่เรียงลำดับของจำนวนเต็มห้าตัวแต่ละค่ามีค่าระหว่าง 1 ถึง 6 รวมถึงมือ Yahtzee เอาท์พุต ค่าจริงถ้ามือมีขนาดเล็กและตรงค่าเป็นเท็จอย่างอื่น กรณีทดสอบ Truthy: [[1, 2, 3, 3, 4], [1, 2, 3, 4, 5], [3, 5, 6, …

13
1 ควินเฉลี่ยของคุณ
1 ขึ้นควินเป็นโปรแกรมที่จะคล้ายกับควินเป็น ข้อแตกต่างที่สำคัญอย่างหนึ่งก็คือแทนที่จะพิมพ์ตัวเองหนึ่งครั้งเมื่อมีการต่อโปรแกรมnสำเนาเข้าด้วยกันผลลัพธ์จะพิมพ์โปรแกรมต้นฉบับn + 1ครั้ง ตัวอย่าง หากโปรแกรมของคุณคือAbc123: Abc123 -> Abc123Abc123 Abc123Abc123 -> Abc123Abc123Abc123 Abc123Abc123Abc123 -> Abc123Abc123Abc123Abc123 ท้าทาย ความท้าทายของคุณคือการสร้างควินิน 1 ตัวที่สั้นที่สุดในทุกภาษา ใช้กฎควินินปกติดังนั้นคุณอาจไม่: ส่งโปรแกรมเปล่า อ่านซอร์สโค้ดโดยตรงหรือโดยอ้อม1 ใช้การสร้างแบบอินภายใน นี่คือ code-golf ดังนั้นรหัสที่สั้นที่สุดในหน่วยไบต์ชนะ 1สิ่งนี้ไม่รวมถึงการใช้สตริงหรือโค้ดบล็อกแบบแข็งซึ่งเป็นส่วนหนึ่งของโปรแกรมของคุณ

24
เรียงตามการคูณ
คุณควรเขียนโปรแกรมหรือฟังก์ชั่นที่ให้รายการจำนวนเต็มบวกคูณแต่ละองค์ประกอบด้วยจำนวนเต็มบวกที่เล็กที่สุดที่เป็นไปได้เพื่อสร้างรายการที่เพิ่มขึ้นอย่างเคร่งครัด ตัวอย่างเช่นถ้าอินพุตเป็น 5 4 12 1 3 การคูณจะเป็น 5*1=5 4*2=8 12*1=12 1*13=13 3*5=15 และผลลัพธ์จะเป็นรายการที่เพิ่มขึ้น 5 8 12 13 15 อินพุต รายการจำนวนเต็มบวกที่มีองค์ประกอบอย่างน้อย 1 ตัว เอาท์พุต รายการของจำนวนเต็มบวก ตัวอย่าง 9 => 9 1 2 => 1 2 2 1 => 2 3 7 3 => 7 9 1 1 1 1 => 1 …

13
ความทรงจำที่น่าประทับใจของช่วงเวลาที่ผ่านมา
พิจารณาจำนวนเฉพาะพีเขียนในฐาน 10 หน่วยความจำของพีถูกกำหนดให้เป็นจำนวนเฉพาะที่แตกต่างกันอย่างเคร่งครัดน้อยกว่าพีที่มีอยู่เป็นสตริงของพี ท้าทาย ได้รับไม่ใช่เชิงลบจำนวนเต็มnเป็น input พบนายกเล็กที่สุดหน้าดังกล่าวว่าPมีหน่วยความจำn นั่นคือค้นหาไพรม์ที่เล็กที่สุดที่มีnเฉพาะที่ต่างกันน้อยกว่าอย่างเคร่งครัดเหมือนกับสตริงย่อย อินพุต สามารถป้อนข้อมูลผ่านรูปแบบมาตรฐานใด ๆ คุณต้องรองรับอินพุตจนถึงnมากที่สุดซึ่งเอาต์พุตจะไม่ล้น สำหรับการอ้างอิง 4294967291 เป็นนายกที่ใหญ่ที่สุดใน 32 บิต เอาท์พุต เอาต์พุตอาจถูกเขียนไปยัง STDOUT หรือส่งคืนจากฟังก์ชัน ตัวอย่าง หมายเลข 2 มีหน่วยความจำ 0 เนื่องจากไม่มีช่วงเวลาที่แน่นอนน้อยกว่าในฐานะสตริงย่อย จำนวน 113 เป็นไพรม์ที่เล็กที่สุดพร้อมหน่วยความจำ 3 ตัวเลข 3, 13, และ 11 เป็นซับไพรม์เดี่ยวเท่านั้นและไม่มีไพร์มที่เล็กกว่า 113 มี 3 primes เหมือนกับซับสติ้ง 10 คำแรกของลำดับที่เริ่มต้นด้วยn = 0 คือ 2, 13, 23, …

28
เลือกหมายเลขลอตเตอรี่!
ลอตเตอรี่เป็นหวยอเมริกันที่เพิ่งได้รับความสนใจเนื่องจากแจ็คพอตปัจจุบัน (ณ วันที่ 11 มกราคม 2016) เป็นรางวัลล็อตโต้ที่ใหญ่ที่สุดในประวัติศาสตร์ประมาณ 1.5 พันล้านเหรียญสหรัฐ ( USD ) ผู้เล่น Powerball เลือก 5 หมายเลขที่แตกต่างกันจากลูกบอลสีขาว 69 หมายเลขและ 1 "Powerball" หมายเลขหนึ่งจากลูกบอลสีแดง 26 หมายเลข พวกเขาชนะรางวัลแจ็คพอตหากลูกบอลสีขาวห้าลูกเลือกตรงกับสิ่งที่วาดตามลำดับใด ๆและหากพวกเขาเลือกหมายเลข "Powerball" ที่ถูกต้อง โอกาสชนะแจ็คพอตคือ 1 ใน(69 choose 5)*(26 choose 1)หรือ((69*68*67*66*65)/(5*4*3*2*1))*26เท่ากับ1 ใน 292,201,338 ไม่มีใครชนะแจ็คพอตในการจับรางวัลครั้งล่าสุดเมื่อวันที่ 9 มกราคม 2016 แต่บางทีใครบางคนอาจจะชนะการจับรางวัลครั้งต่อไปในวันที่ 13 มกราคม 2016, 22:59 น. ET ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่เลียนแบบการวาด …

30
คำบิด!
คำบิด! รับสตริงและจำนวนเต็มบวก คุณต้องบิดสายไปมา ตัวอย่างอินพุต / เอาท์พุต อินพุต Programming Puzzles & Code Golf 4 เอาท์พุต Prog mmar ing zzuP les oC & de G flo อินพุต อินพุตสามารถใช้ผ่าน STDIN หรืออาร์กิวเมนต์ของฟังก์ชัน การป้อนข้อมูลจะประกอบด้วยสตริงและจำนวนเต็มบวก n จำนวนเต็มจะกำหนดความยาวของแต่ละเส้นบิด สตริงถูกบิดไปมา อินพุตHELLO, WORLD!และ 5 มีลักษณะดังนี้: เอาท์พุต ผลลัพธ์จะเป็นข้อความที่บิดเบี้ยว มันอาจจะไม่ช่องว่างต่อท้าย หากความยาวของสตริงที่ป้อนเข้าไม่หารด้วยความยาวของบรรทัดให้เพิ่มช่องว่างจนกว่าจะเติมบรรทัด: ตัวอย่างของสิ่งนี้: อินพุต Hello, World! 5 เอาท์พุท (หมายเหตุช่องว่างที่ปลายสุด) Hello roW , …
34 code-golf  string 

30
ค้นหาจำนวนที่กำหนดที่มีการแทนทศนิยมดูเหมือนไบนารี
ฉันเจอคำถามเกี่ยวกับไซต์ตรวจสอบโค้ดที่น่าสนใจ ฉันคิดว่า OP กำลังทำผิด แต่ไม่แน่ใจ ... ดังนั้นเรามาไขปัญหาให้เขากันเถอะ! (เขียนโปรแกรมไม่ใช่ฟังก์ชัน / โพรซีเดอร์) อินพุต (stdin หรือคล้ายกัน): จำนวนเต็มxในรูปแบบทศนิยม มันมากกว่า 1 และน้อยกว่า 2 ^ 31 เอาท์พุท (stdout หรือคล้ายกัน): จำนวนเต็มyในรูปแบบทศนิยม ผลิตภัณฑ์ที่ใช้x * yแทนทศนิยมจะต้องมีตัวเลขเพียง 0 และ 1 เท่านั้นและจะต้องมีจำนวนน้อยที่สุดดังกล่าวมากกว่า 0 หมายเหตุ: ผลลัพธ์ไม่ จำกัด - ถ้าค่าต่ำสุดyประมาณ 10 ^ 100 โปรแกรมของคุณจะต้องส่งออกทั้งหมด 100 หลัก (ฉันไม่รู้ว่ามีข้อ จำกัด ที่สมเหตุสมผลเช่น 2 ^ 64 เปิดy- …
34 code-golf  number 

10
สร้างเศษส่วนจากรูปแบบบิตใน ASCII
ภาพรวม เขียนโปรแกรมที่พิมพ์รูปแบบแฟร็กทัลแบบง่ายโดยให้บิตเป็นรูปแบบการเข้ารหัสแฟร็กทัลรวมถึงตัวประกอบสเกลต่อรุ่นของเศษส่วนและจำนวนรุ่น คำอธิบาย นี่คือตัวแทน ASCII ของSierpinski Carpet : รุ่น 0: # รุ่นที่ 1: # # # # # # # # รุ่นที่ 2: # # # # # # # # # # # # # # # # # # # # # # # # # # # …

21
มันเป็นวันอะไร (บน Flooptonia)?
คุณเป็นนักเดินทางอวกาศเพื่อไปยังดาวเคราะห์ Flooptonia! เที่ยวบินจะใช้เวลาอีก 47,315 ปีดังนั้นเพื่อให้ผ่านเวลาก่อนที่คุณจะถูกแช่แข็ง cryogenically คุณตัดสินใจที่จะเขียนโปรแกรมเพื่อช่วยให้คุณเข้าใจปฏิทิน Flooptonian นี่คือปฏิทิน Flooptonian ที่มีความยาว 208 วัน: Month Days Input Range Qupu 22 [0-22) Blinkorp 17 [22-39) Paas 24 [39-63) Karpasus 17 [63-80) Floopdoor 1 [80] Dumaflop 28 [81-109) Lindilo 32 [109-141) Fwup 67 [141-208) ท้าทาย โปรแกรมของคุณกำหนดวันจำนวนเต็มในปี (ช่วง[0-208)) คือการส่งออกวันที่สอดคล้องกันของเดือนและชื่อของเดือน (เช่น13 Dumaflop) อย่างไรก็ตามมีข้อยกเว้นคือ: Floopdoor เป็นช่วงเวลาพิเศษสำหรับ …
34 code-golf  date 

5
สร้างอินเทอร์เฟซที่เหมาะกับประเภท XKCD
colours.rgb ("สีน้ำเงิน") ให้ผลตอบแทน "# 0000FF" colors.rgb ("สีน้ำเงินเหลือง") ให้ผล NaN colors.sort () ให้ผล "รุ้ง" ใช้กฎที่กำหนดไว้ในภาพและข้อความชื่อ (อ้างถึงที่นี่) สร้างโปรแกรมที่ยอมรับอินพุตที่กำหนดทั้งหมดและแสดงผลลัพธ์ที่เหมาะสม สามารถป้อนข้อมูลด้วย stdin หรือเทียบเท่าที่ใกล้ที่สุด ควรมีบรรทัด[n]>ที่จะพิมพ์และnเพิ่มขึ้นทีละ 1 คำสั่ง ควรเริ่มต้นที่ 1 ควรแสดงผลลัพธ์โดยใช้ stdout หรือใกล้เคียงที่สุด ควรจะมี=>ในแต่ละบรรทัดของการส่งออก เงื่อนไขทั้งหมด 13 ข้อรวมทั้ง 3 ข้อในชื่อ (ที่ยกมา) จะต้องใช้งานได้ นี่คือรหัสกอล์ฟดังนั้นคำตอบที่สั้นที่สุดจึงชนะ
34 code-golf 


18
เลิกทำอาร์เรย์
ความท้าทายนี้ได้แรงบันดาลใจจากคำถามเกี่ยวกับ Mathematica.SE สมมติว่าคุณมีรายการ / อาร์เรย์ที่ซ้อนกันของโครงสร้างที่กำหนดเอง (รายการในแต่ละระดับไม่จำเป็นต้องมีความยาวเท่ากัน) เพื่อความง่ายเราจะสมมติว่าโหนดนั้นเป็นจำนวนเต็มไม่เป็นลบหรืออาร์เรย์ว่าง ตัวอย่างเช่น [[[1, 3], 2], [1, 4], 12, [[0, [], 0], [5, [7]]]] บางครั้งมันจะสะดวกกว่าที่จะแผ่แบนรายการนั้นเพื่อทำการจัดการบางอย่างของโหนดเช่น --> [1, 3, 2, 1, 4, 12, 0, 0, 5, 7] --> [1, 1, 0, 1, 0, 0, 0, 0, 1, 1] แต่ในที่สุดคุณต้องการรักษาโครงสร้างดั้งเดิมเอาไว้ดังนั้นคุณต้องเปลี่ยนสิ่งนี้กลับเป็น --> [[[1, 1], 0], [1, 0], 0, …

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