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

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

1
ต้นไม้กลายพันธุ์ mtDNA
พื้นหลัง: MtDNA เป็นส่วนหนึ่งของ DNA มนุษย์ที่ส่งผ่านจากแม่ไปสู่เด็กและมันกลายพันธุ์ไม่ค่อย เนื่องจากนี่เป็นเรื่องจริงสำหรับมนุษย์ทุกคนจึงมีความเป็นไปได้ที่จะสร้างต้นไม้ขนาดใหญ่ที่แสดงให้เห็นว่ามนุษย์ทุกคนมีความสัมพันธ์ซึ่งกันและกันผ่านบรรพบุรุษของพวกเขาตลอดทางจนถึง EVE สมมุติฐาน การกลายพันธุ์ทุกครั้งใน MtDNA เมื่อเด็กเกิดมาจะสร้างสาขาย่อยใหม่จากสาขาหลักในต้นไม้ ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับ Mitochondrial DNA (mtDNA) ที่นี่: https://en.wikipedia.org/wiki/Mitochondrial_DNA วัตถุประสงค์: โปรแกรมของคุณจะแสดงรายการการนับการกลายพันธุ์ของกิ่งต้นไม้ mtDNA และโปรแกรมของคุณควรแสดงมุมมองแบบต้นไม้ ตัวอย่างอินพุตและเอาต์พุต: อินพุตเป็นตารางที่คั่นด้วยเซมิโคลอน 3 คอลัมน์พร้อมบรรทัดสำหรับแต่ละสาขา ตัวอย่าง: L0a'b'f'k;L0;14 L0a'b'f;L0a'b'f'k;23 L0;mtEVE;10 L0a'b;L0a'b'f;30 L0a;L0a'b;38 L0a1'4;L0a;39 L0a1;L0a1'4;40 L0a1a;L0a1;42 L0a1a NL;L0a1a;43 L0a1a1;L0a1a NL;44 L0a1a2;L0a1a NL;45 L0a1a3;L0a1a NL;44 L0a1 NL;L0a1;41 L0a1b;L0a1 NL;44 L0a1b NL;L0a1b;45 L0a1b1;L0a1b NL;46 …

6
พิมพ์ ascii Spiral ในหน่วยความจำ O (log n)
คุณสามารถเขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มคี่บวก nที่ซึ่งn >= 3เป็นฟังก์ชันอาร์กิวเมนต์อาร์กิวเมนต์บรรทัดคำสั่งหรือบน STDIN (หรือเทียบเท่ากับระบบของคุณ) และพิมพ์ไปยัง STDOUT (หรือเทียบเท่าระบบ) เกลียว ASCII ที่หมุนเข้าด้านในตามเข็มนาฬิกาโดยที่ขอบด้านบนมีความnยาวอักขระอย่างแน่นอน ขอบด้านขวาแรกควรมีความn+1ยาวอักขระ ตัวอย่างเช่น การป้อนข้อมูล: 11 เอาท์พุท: *********** * ********* * * * * * ***** * * * * * * * * * * * * * * * *** * * * * * * * ******* …

3
สมการไดโอแฟนไทน์เชิงเส้นตามธรรมชาติ
สมการไดโอแฟนไทน์เชิงเส้นในสองตัวแปรคือสมการของรูปแบบax + โดย = cโดยที่a , bและcเป็นจำนวนเต็มคงที่และxและyเป็นตัวแปรจำนวนเต็ม สำหรับสมการไดโอแฟนไทน์ที่เกิดขึ้นตามธรรมชาติจำนวนมากxและyแทนปริมาณที่ไม่สามารถลบได้ งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ยอมรับค่าสัมประสิทธิ์a , bและ cเป็นอินพุตและส่งกลับค่าจำนวนคู่ตามธรรมชาติ (0, 1, 2, …) xและyที่ตรวจสอบสมการขวาน + โดย = cหากคู่ดังกล่าว ที่มีอยู่ กฎเพิ่มเติม คุณสามารถเลือกรูปแบบใดก็ได้สำหรับอินพุตและเอาท์พุตที่เกี่ยวข้องกับจำนวนเต็มเท่านั้นที่ต้องการและตัวเลือกสัญลักษณ์ / array / list / matrix / tuple / vector ของภาษาของคุณตราบใดที่คุณไม่ต้องฝังโค้ดใด ๆ ในอินพุต คุณอาจสมมติว่าค่าสัมประสิทธิ์aและbเป็นทั้งที่ไม่ใช่ศูนย์ รหัสของคุณจะต้องทำงานให้แฝดใด ๆ ของจำนวนเต็มระหว่าง-2 60และ2 60 ; จะต้องเสร็จสิ้นภายในไม่กี่นาทีบนเครื่องของฉัน (Intel i7-3770, 16 GiB …

1
บันทึกห่านจากการสูญพันธุ์
ห่านสายพันธุ์ที่รู้จักกันในชื่อAlex Aเป็นที่รู้จักกันว่าอาศัยอยู่ในกริดรูปสามเหลี่ยมซึ่งประกอบด้วย 64 เซลล์: (รูปภาพที่นำมาจากปัญหาเกี่ยวกับ Project Euler ที่ไม่เกี่ยวข้อง ) เราจะติดป้ายเซลล์ที่มีตัวเลขในแต่ละ0ที่จะ63เริ่มต้นจากแถวด้านบนแล้วย้ายจากซ้ายไปขวาในแต่ละแถวด้านล่างที่ ดังนั้นเซลล์ด้านบนเป็นเซลล์ล่างขวาเป็น063 แต่ละเซลล์มีสามเส้นขอบ เราสามารถติดป้ายแต่ละเส้นขอบในรูปแบบa,bที่aและbเป็นหมายเลขของเซลล์ที่ใช้เส้นขอบนั้น ตัวอย่างเช่นเส้นขอบระหว่างเซลล์0และ2จะถูกเรียก0,2หรือ2,0(ไม่สำคัญว่าคุณจะเรียงลำดับอะไร) ระบบการติดฉลากของเส้นขอบที่ขอบของกริดนั้นแตกต่างกันเนื่องจากเซลล์ที่อยู่บนขอบของกริดนั้นมีเส้นขอบที่ไม่ได้ใช้ร่วมกับเซลล์อื่น หากเส้นขอบเป็นเพียงส่วนหนึ่งของเซลล์เดียวเราจะใช้ตัวอักษรXนั้น ยกตัวอย่างเช่นสามชายแดนของเซลล์0มี0,2, และ0,X0,X บางส่วนของเซลล์ประกอบด้วยห่าน อย่างไรก็ตามห่านเหล่านี้จะถูกสุนัขจิ้งจอกชั่วร้ายฆ่าตาย (ซึ่งมาจากนอกเขตของกริด) ถ้าคุณไม่ปกป้องพวกมัน และถ้าห่านทุกตัวตายไปแล้ว BrainSteel จะเศร้า ดังนั้นเราจะเขียนโปรแกรมที่สร้างรั้วรอบ ๆ ห่านเพื่อปกป้องพวกมันจากสุนัขจิ้งจอก ห่านควรอยู่ในที่เดียวรูปหลายเหลี่ยมล้อมรอบอย่างเต็มที่รั้ว งบประมาณรั้วของเราค่อนข้างต่ำดังนั้นใช้จำนวนรั้วน้อยที่สุดเท่าที่จะทำได้ ป้อนคำอธิบาย รายการตัวเลขคั่นด้วยเครื่องหมายจุลภาคจาก0ถึง63แทนเซลล์ที่มีห่าน ตัวอย่าง: 6,12 คำอธิบายผลลัพธ์ รายการของเส้นขอบที่จำเป็นต้องมีรั้วสร้างขึ้นเพื่อป้องกันห่านที่ประสบความสำเร็จ นี่ควรเป็นจำนวนรั้วที่เล็กที่สุดเท่าที่จะทำได้ ตัวอย่าง: 5,6 6,7 11,12 12,13

1
XKCD Bracket ความน่าจะเป็น
วันนี้ XKCDเป็นกีฬาสไตล์การแข่งขันที่ผู้เข้าแข่งขันเป็นชื่อที่รู้จักกันดีใส่ลงในกลุ่มของชื่อที่อาจเกิดความสับสน ให้ความน่าจะเป็นที่ผู้เข้าแข่งขันที่ระบุจะชนะการแข่งขันทั้งหมดขึ้นอยู่กับผู้เข้าแข่งขันแต่ละคนในรอบที่กำหนดซึ่งมีโอกาสเท่ากันในการชนะรอบนั้น อินพุต ชื่อของผู้แข่งขัน XKCD ชอบที่จะใช้ตัวพิมพ์ใหญ่ทั้งหมด แต่คุณสามารถใช้ตัวพิมพ์เล็กและตัวพิมพ์เล็กก็ได้ คุณอาจสันนิษฐานว่าชื่ออินพุตทั้งหมดนั้นถูกต้อง Jeff GordanJeff Gordonน่าจะเป็นของการสะกดคำผิด คุณอาจเลือกที่จะยอมรับข้อใดข้อหนึ่งหรือทั้งสองข้อ บางชื่อใส่เครื่องหมายวรรคตอนเช่นและH. G. Wells Joseph Gordon-Levittคุณสามารถเลือกที่จะยอมรับชื่อที่มีหรือไม่มีเครื่องหมายวรรคตอน (หรือทั้งสองอย่าง) ข้างต้นโดยไม่มีเครื่องหมายวรรคตอนจะเป็นH G WellsและJoseph Gordon Levitt ในทำนองเดียวกันคุณอาจเลือกที่จะยอมรับอย่างใดอย่างหนึ่งBeyoncéหรือBeyonceหรือทั้งสองอย่าง Mister/Fred Astaire/Rogersสายเป็นบิตแปลก สำหรับนี้คุณจะต้องยอมรับต่อไปนี้: Fred Rogers, Mister RogersและFred Astaire เอาท์พุต ความน่าจะเป็นของผู้เข้าแข่งขันที่ได้รับรางวัลชนะการแข่งขันทั้งในรูปแบบที่มีเหตุผล (เช่น1/64) ตัวอย่าง หลุยส์อาร์มสตรองจะเล่นในรอบ 6 โดยแต่ละคนมีผู้เข้าแข่งขันสองคนดังนั้นเขาจึงมีโอกาสชนะ 1/64 Alan Rickman มีแนวโน้มที่จะเล่นในรอบ 7 ซึ่งเป็นครั้งแรกกับ 3 ผู้เข้าแข่งขันและส่วนที่เหลือกับผู้เข้าแข่งขัน 2 คนดังนั้นเขาจึงมีโอกาสชนะ …

10
รหัสบอท 3: Antipatterns การเขียนโปรแกรมแบบขนาน
ยินดีต้อนรับกลับ! ฉันตื่นเต้นที่จะนำเสนอความท้าทาย CodeBots ที่ 3 อันนี้มีมานานแล้วในการทำ ความท้าทายนี้จะแบ่งออกเป็น 3 ส่วน ได้แก่ รุ่นสั้นรุ่นยาวและรายละเอียดเพิ่มเติม เวอร์ชั่นสั้น ผู้แข่งขันแต่ละคนจะเขียนโปรแกรม 24 คำสั่ง บอทเหล่านี้จะย้ายไปทั่วโลกและคัดลอกรหัสไปยังบอตอื่น ๆ ในขณะที่พยายามป้องกันไม่ให้บ็อตอื่นทำเช่นเดียวกัน Flagหนึ่งในคำสั่งที่เป็นไปได้คือไม่มี-op หากบอทมีFlagมากกว่าบอทอื่นFlagคุณก็จะได้คะแนน คุณชนะโดยมีคะแนนมากที่สุด ทั้งหมดที่กล่าวมาเป็นจริงสำหรับความท้าทายสองประการที่ผ่านมา คราวนี้บอทจะสามารถเรียกใช้โค้ดหลายบรรทัดในเวลาเดียวกันได้ รุ่นยาว API บอททุกคนจะมี 24 บรรทัดโดยที่แต่ละบรรทัดอยู่ในรูปแบบต่อไปนี้: $label command parameters //comments เลเบลและข้อคิดเห็นเป็นทางเลือกและแต่ละคำสั่งมีพารามิเตอร์ที่แตกต่างกัน ทุกอย่างไม่คำนึงถึงขนาดตัวพิมพ์ พารามิเตอร์ พารามิเตอร์ถูกพิมพ์และสามารถอยู่ในรูปแบบต่อไปนี้: ค่าตั้งแต่ 0 ถึง 23 ตัวแปร: A, B, C,D ค่าที่ใช้การเพิ่ม: A+3หรือ2+C บรรทัดของรหัสที่กำหนดโดยใช้#เครื่องหมาย ( #4จะแสดงถึงบรรทัดที่ 5 …


5
ถึงเวลาเลือกตั้ง!
ถึงเวลา ... เพื่อนับคะแนน! วันนี้มีการเลือกตั้งท้องถิ่นทั่วประเทศของฉัน ที่นี่จำนวนที่นั่งสำหรับแต่ละบุคคลที่จะตัดสินใจใช้วิธี Hondt ศิลปวัตถุ เป้าหมายของคุณคือการใช้โปรแกรมหรือฟังก์ชั่นที่จะตัดสินจำนวนที่นั่งที่แต่ละฝ่ายได้รับในจำนวนไบต์ที่สั้นที่สุด สำหรับวิธีนี้มีจำนวนที่นั่งที่แน่นอนในการแจกจ่ายและทำเช่นนั้น: ทุกฝ่ายมีการกำหนดหมายเลขตัวแปรซึ่งเริ่มจากจำนวนคะแนนที่ได้รับ จากนั้นที่นั่งแรกจะถูกมอบให้กับบุคคลที่มีค่ามากที่สุดในตัวแปรของพวกเขาและจากนั้นค่าสำหรับพรรคนั้นจะกลายเป็นจำนวนคะแนนรวมหารด้วย1+seatsปัดเศษลงซึ่งseatsเป็นจำนวนที่นั่งที่มีอยู่แล้ว (ดังนั้นหลังจากได้รับ ก่อนคะแนนของพวกเขาจะถูกหารด้วย 2 และ 3 หลังจากได้ที่นั่งที่สอง) หลังจากนั้นฝ่ายต่างๆจะทำการโหวตอีกครั้ง กระบวนการนี้จะดำเนินต่อไปจนกว่าจะมีการกำหนดที่นั่งทั้งหมด หากจำนวนสูงสุดคือการเสมอกันระหว่างสองฝ่ายหรือมากกว่าฝ่ายนั้นจะได้รับการแก้ไขแบบสุ่ม (ต้องเป็นแบบสุ่มมันไม่สามารถเป็นอันดับแรกของทั้งสองฝ่ายในรายการ) อินพุต คุณจะได้รับหมายเลขNซึ่งจะระบุจำนวนที่นั่งที่มีอยู่และรายการคะแนนโหวตที่แต่ละฝ่ายได้รับในรูปแบบที่คุณต้องการ ตัวอย่าง: 25 12984,7716,13009,4045,1741,1013 เอาท์พุต คุณควรส่งรายการที่นั่งที่แต่ละฝ่ายได้รับ ในตัวอย่างข้างต้นมันจะเป็นอย่างไร 8,5,9,2,1,0 พวกเขาควรอยู่ในลำดับเดียวกันกับฝ่ายต่างๆในอินพุต ตัวอย่าง 5 3,6,1 outputs: 2,3,0 135 1116259,498124,524707,471681,359705,275007,126435 outputs: 45,20,21,19,14,11,5 โบนัส โบนัส -20%ถ้าใช้ชื่อปาร์ตี้เป็นอินพุทและให้พวกมันในเอาท์พุทเช่น: 25 cio:12984,pcc:7716,irc:13009,icb:4045,cub:1741,bb:1013 outputs cio:8 pcc:5 irc:9 icb:2 …
13 code-golf 

1
เชื่อมต่อรายการของสตริง item-wise ใน Python
นี่คือเคล็ดลับคำถามสำหรับการเล่นกอล์ฟในหลาม สมมติว่าคุณมีสองรายการของสตริงและคุณต้องการเชื่อมต่อรายการที่เกี่ยวข้องจากแต่ละรายการ เช่นกับa=list("abcd")และการคำนวณb=list("1234")["a1","b2","c3","d4"] นี่เป็นเรื่องเล็กน้อยในภาษาการเขียนโปรแกรมแบบอาเรย์ ยกตัวอย่างเช่นในภาษาของการเล่นกอล์ฟของฉันPipa.bรหัสเป็นเพียง แต่ใน Python มันไม่ง่ายเลย อาจใช้วิธี Pythonic zipและรายการเข้าใจ (25 ตัวอักษร): [x+y for x,y in zip(a,b)] อีกวิธีคือmapฟังก์ชั่นแลมบ์ดา (23): map(lambda x,y:x+y,a,b) ต่อไปนี้เป็นคำย่อที่ฉันพบ (21): map("".join,zip(a,b)) มีวิธีการที่สั้นกว่านี้ไหม? สมมติว่ารายการนั้นมีความยาวเท่ากันและสามารถทำซ้ำได้บางอย่างเป็นสิ่งที่จำเป็น (ดังนั้นmapวัตถุจึงใช้ได้ใน Python 3)
13 code-golf  tips  python 

4
หมายเลข Friedman ที่ดีมาก
ฟรีดแมนจำนวนเป็นจำนวนเต็มบวกที่เท่ากับการแสดงออกที่ไม่น่ารำคาญซึ่งใช้ตัวเลขของตัวเองในการรวมกันกับการดำเนินงาน +, -, *, / ^ วงเล็บและเรียงต่อกัน Nice Friedman Number เป็นจำนวนเต็มบวกที่เท่ากับนิพจน์ที่ไม่สำคัญซึ่งใช้ตัวเลขของตัวเองร่วมกับการดำเนินการเดียวกันโดยมีตัวเลขตามลำดับดั้งเดิม หมายเลข Friedman ที่ดีมาก (VNFN) ซึ่งฉันประดิษฐ์ที่นี่คือหมายเลข Nice Friedman ที่สามารถเขียนได้โดยไม่ต้องมีส่วนที่ค่อนข้างน้อย (ในความคิดของฉัน) ในการแสดงออก ไม่อนุญาตให้ใช้วงเล็บ, การต่อกันและการปฏิเสธแบบเอกนารี สำหรับความท้าทายนี้มีวิธีที่เป็นไปได้สามวิธีในการเขียนนิพจน์โดยไม่มีวงเล็บ คำนำหน้า:สิ่งนี้เทียบเท่ากับการเชื่อมโยงทางซ้าย ประเภทของนิพจน์นี้เขียนด้วยตัวดำเนินการทั้งหมดทางด้านซ้ายของตัวเลข ตัวดำเนินการแต่ละตัวใช้กับนิพจน์สองข้อต่อไปนี้ ตัวอย่างเช่น *+*1234 = *(+(*(1,2),3),4) = (((1*2)+3)*4) = 20 VNFN ที่สามารถเขียนด้วยวิธีนี้คือ 343: ^+343 = ^(+(3,4),3) = ((3+4)^3) = 343 Postfix:นี่เทียบเท่ากับการเชื่อมโยงทางขวา มันเหมือนกับสัญลักษณ์คำนำหน้ายกเว้นว่าการดำเนินการไปทางขวาของตัวเลข แต่ละโอเปอเรเตอร์ใช้กับนิพจน์ก่อนหน้าทั้งสอง ตัวอย่างเช่น 1234*+* …

11
การคำนวณระยะทาง mod N
คุณได้รวบรวมข้อมูลจากAdvanced Collecting Device Controller ™มาเป็นเวลานาน คุณตรวจสอบบันทึกและความสยองขวัญของคุณคุณพบว่ามีบางอย่างผิดปกติอย่างยิ่ง: ข้อมูลมีเพียงจำนวนบิตสุดท้าย! โชคดีที่คุณรู้ค่าเริ่มต้นและค่าไม่เปลี่ยนแปลงอย่างรวดเร็ว นั่นหมายความว่าคุณสามารถกู้คืนที่เหลือโดยเพียงแค่ค้นหาระยะทางจากจุดเริ่มต้น ท้าทาย คุณจะเขียนโปรแกรมหรือฟังก์ชั่นในการคำนวณจำนวนเงินที่เป็นค่าที่มีการเปลี่ยนแปลงได้รับการโมดูลัสNและรายชื่อของค่ากลาง Nmodulo การเปลี่ยนแปลงระหว่างตัวเลขทุกคู่จะน้อยกว่าเสมอN/2ดังนั้นจะมีคำตอบที่ถูกต้องเพียงข้อเดียวสำหรับแต่ละกรณีทดสอบ คุณจะได้รับเป็นอินพุตจำนวนเต็มN> 2 และรายการค่าในรูปแบบที่คุณเลือก อินพุตอาจถูกกำหนดผ่าน STDIN หรือบรรทัดรับคำสั่งหรืออาร์กิวเมนต์ของฟังก์ชัน คุณจะส่งออกจำนวนเต็มเดียวจำนวนเงินที่มีการเปลี่ยนแปลงค่าเดิม เอาต์พุตอาจถูกพิมพ์ไปที่ STDOUT หรือส่งคืน กฎระเบียบ โปรแกรมต้องทำงานของคุณสำหรับระยะทางใด ๆ 2^20และโมดูลัสน้อยกว่า คุณอาจคิดว่า: N3เป็นอย่างน้อย รายการมีค่าอย่างน้อย 2 ค่า ค่าทั้งหมดในรายการอย่างน้อย 0 Nและน้อยกว่า N/2การเปลี่ยนแปลงทั้งหมดในจำนวนที่น้อยกว่า สิ่งอื่นใดคืออินพุตที่ไม่ถูกต้องและโปรแกรมของคุณอาจทำสิ่งที่มันต้องการ ช่องโหว่มาตรฐานห้องสมุดที่ไม่ได้มาตรฐานและฟังก์ชั่นในตัวสำหรับจุดประสงค์ที่แน่นอนนี้เป็นสิ่งต้องห้าม นี่คือโค้ดกอล์ฟดังนั้นโปรแกรมที่สั้นที่สุดในหน่วยไบต์ชนะ ตัวอย่างกรณีทดสอบ การป้อนข้อมูล: 3 0 1 2 2 0 1 0 2 …
13 code-golf  math 

1
ปริศนาสองศูนย์หนึ่งหนึ่ง
พื้นหลัง ตัวต่อนี้เป็นรูปแบบของตัวต่อสี่สี่ตัว (เป็นหัวข้อของคำถามที่ผ่านมา ) เช่นเดียวกับจิ๊กซอร์นั้นเป้าหมายคือการค้นหานิพจน์ทางคณิตศาสตร์สำหรับจำนวนเต็มที่แตกต่างกันโดยใช้เพียงตัวเลขสี่หลักและตัวดำเนินการทางคณิตศาสตร์บางตัว ในกรณีนี้ แต่ตัวเลขที่ได้รับอนุญาตเป็นเพียง 2, 0, 1 และ 5 แต่ละคนจะต้องปรากฏอย่างแม่นยำหนึ่งครั้งในการแก้ปัญหาและในลำดับที่ถูกต้อง น่าแปลกที่ตัวเลขทั้งหมดจำนวนมากสามารถแสดงด้วยวิธีนี้ เราขอแนะนำให้นักแก้ปัญหาลองแก้ปัญหาด้วยมือก่อนเพราะสนุกอย่างน่าประหลาด กฎระเบียบ ค่าคงที่อาจถูกสร้างขึ้นจากตัวเลขเดียวหรือหลายหลัก: จำนวนเต็ม: เช่น 2, 0, 15 เป็นต้น ทศนิยม: เช่น .2, .01, 1.5, ฯลฯ ทำซ้ำทศนิยม : เช่น. 2 ~ (= 0.222 ... ), .15 ~ (= 0.1555 ... ), 20.15 ~~ (= 20.1515 ... ) …

4
คำนี้พิมพ์ด้วยปุ่มที่อยู่ติดกันหรือไม่?
ก่อนที่จะอ่านสิ่งนี้ฉันขอแนะนำให้อ่านปริศนาเล็ก ๆ นี้: /puzzling/11408/longest-word-with-advertise-letters-on-a-keyboard ฉันต้องการให้คุณสร้างโปรแกรมที่ใช้อาร์กิวเมนต์หนึ่งคำ (ตัวอักษรตัวพิมพ์เล็กเท่านั้น) และส่งออก "ใช่" หากคำนั้นสามารถพิมพ์ด้วยปุ่มที่อยู่ติดกันบนแป้นพิมพ์ (ดูบทความ) และ "ไม่" ถ้าคำนั้นสามารถ ไม่ต้องพิมพ์ด้วยตัวอักษรที่อยู่ติดกัน นี่คือรูปแบบแป้นพิมพ์ที่ใช้ในการท้าทายนี้: ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┐ | Q | W | E | R | T | Y | U | I | O | P | └─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┘ | A | S | D | F | G | H …

2
ASCII Art Generation
งาน เขียนโปรแกรมหรือฟังก์ชั่นที่ต้องใช้ภาพของความกว้างwและความสูงhและสองจำนวนเต็มa <= w/2และb <= h/2, และผลการแสดงศิลปะ ASCII ของภาพที่มีมิติxab ascii art ควรสร้างผ่านขั้นตอนต่อไปนี้ (หรือกระบวนการอื่นที่มีเอาต์พุตเดียวกัน): ปรับขนาดwx hภาพเพื่อx2a 2bสีของพิกเซล(x, y)ในภาพที่ปรับขนาดควรเท่ากับค่าเฉลี่ยของสีของพิกเซลทั้งหมดจากภาพต้นฉบับภายในสี่เหลี่ยมที่มีมุมต่อไปนี้: (floor[x * w/2a], floor[y * h/2b]) (ceil[(x+1) * w/2a], ceil[(y+1) * h/2b]) รูปภาพที่ถูกปรับขนาดควรถูกทำให้เสื่อมสภาพโดยการใช้ค่าเฉลี่ยของส่วนประกอบสีแดงสีเขียวและสีน้ำเงินของสีและตั้งค่าองค์ประกอบแต่ละส่วนเป็นค่าเฉลี่ยนี้ ควรแสดงอักขระสำหรับบล็อก 2x2 แต่ละพิกเซลโดยทำตามกฎด้านล่าง: อนุญาตe = 3 - floor[color/64], ที่ซึ่งสีหมายถึงส่วนประกอบสีแดงของสีของพิกเซลซ้ายบน (ในช่วง 0..255) อนุญาตf, gและhอ้างถึงค่านี้ แต่สำหรับพิกเซลบนขวา, ซ้ายล่างและพิกเซลล่างขวา อนุญาตzเป็นค่าเฉลี่ยของe, f, ,gh เอาท์พุทตัวละครที่สอดคล้องกับต่อไปนี้ (สีขาวหมายถึงพิกเซลที่3 …

30
นับจำนวนสระในแต่ละคำของสตริง
นี่เป็นความท้าทายที่ค่อนข้างง่าย ท้าทาย ข้อมูลที่ป้อนจะมีสตริง (ไม่nullหรือว่างเปล่า) ที่มีความยาวสูงสุด 100 เอาท์พุทจำนวนเสียงในแต่ละคำของสตริงโดยคั่นด้วยช่องว่าง กฎระเบียบ สตริงจะมีความยาวไม่เกิน 100 อักขระ สตริงจะมีตัวอักษรA-Zเท่านั้นa-zและยังสามารถมีช่องว่าง อินพุตต้องถูกใช้จากstdinอาร์กิวเมนต์บรรทัดคำสั่งหรือ stdoutการส่งออกจะต้องออกมาใน คุณสามารถเขียนโปรแกรมแบบเต็มหรือฟังก์ชั่นที่รับอินพุตจากstdinและแสดงผลลัพธ์ สระว่าคุณต้องการโปรแกรม / ฟังก์ชั่นที่จะนับเป็นและaeiouAEIOU กรณีทดสอบ This is the first test case --> 1 1 1 1 1 2 one plus two equals three --> 2 1 1 3 2 aeiou AEIOU --> 5 5 psst --> …

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