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

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

1
Levenquine เป็นวงกลม
พื้นหลัง ในฐานะที่เป็นประจำ PPCG ส่วนใหญ่จะรู้ว่าควินเป็นโปรแกรมที่ส่งออกซอร์สโค้ดของตัวเองเมื่อทำงาน; และระยะทางของ Levenshteinระหว่างสองสายคือจำนวนขั้นต่ำของการแทรกการลบและการแก้ไขที่จำเป็นในการเปลี่ยนหนึ่งสายเป็นอีกสายหนึ่ง ในความท้าทายนี้เราได้รวมแนวคิดทั้งสองไว้ใน "levenquine": โปรแกรมที่ส่งออกซอร์สโค้ดของตัวเอง แต่มีอินสแตนซ์หนึ่งของอักขระหนึ่งตัวที่แทรกลบหรือแทนที่ด้วยอักขระอื่น (กล่าวอีกนัยหนึ่งระยะทางของ Levenshtein ระหว่างโปรแกรมและผลลัพธ์คือ 1) งาน เขียน levenquine เพื่อให้ผลลัพธ์เป็น levenquine, ผลลัพธ์ของโปรแกรมนั้นเป็น levenquine, และอื่น ๆ นอกจากนี้ในบางจุดลำดับของการรันโปรแกรมซ้ำ ๆ , การรันเอาต์พุต, การรันเอาต์พุตของเอาต์พุต, ฯลฯ ในที่สุดจะต้องกลับมาที่โปรแกรมต้นฉบับ มีข้อ จำกัด เพิ่มเติมหนึ่งข้อที่ทำให้สิ่งต่าง ๆ ยากขึ้น: จะต้องมีสองโปรแกรมที่แตกต่างกันบางแห่งในวงรอบนี้ซึ่งไม่มีตัวอักษรที่เหมือนกัน (ในคำอื่น ๆ ไม่มีตัวละครที่มีอยู่ในโปรแกรมหนึ่ง โปรแกรมของคุณจะต้องค่อยๆแปลงตัวเองเป็นชุดอักขระที่แตกต่างกันและกลับมาอีกครั้ง หากคุณกำลังใช้ภาษาการเขียนโปรแกรมซึ่งไม่จำเป็นต้องมีสำเร็จรูปสำเร็จรูปที่ต้องการในโปรแกรมใด ๆ ที่สร้างผลลัพธ์ (เช่นมีเพียงวิธีเดียวในการเขียนprintคำสั่งและไม่มีรูปแบบการส่งออกที่มีประโยชน์อื่น ๆ ) คุณอาจถือว่าสำเร็จรูปนั้นไม่มีอยู่จริง ของการพิจารณาว่าตัวละครสองตัวใดมีเหมือนกัน อย่างไรก็ตามคุณจะต้องนับจำนวนแผ่นเหล็กสำเร็จรูปเพื่อวัตถุประสงค์ในการกำหนดคุณสมบัติ Levenquine …

30
สตริงที่สาม
กำหนดสองสายเอาท์พุทสตริงที่สามที่ไม่เท่ากับหนึ่งในสองอินพุต แต่มีความยาวเท่ากัน (เป็นตัวอักษร) เหมือนกับอินพุตใด ๆ มีการรับประกันว่าจะมีเอาต์พุตที่ถูกต้องอย่างน้อยหนึ่งรายการ กรณีทดสอบ กรณีทดสอบจะถูกยกมาเพื่อแสดงว่าพวกเขาเป็นสตริง เอาต์พุตเป็นหนึ่งในหลาย ๆ input, input -> output "test", "test" -> "tttt" "do", "don't" -> "dnut_" "ye s", "yes" -> "fals" "yes", "yes" -> "noo" "maybe", "mayue" -> "false" "false", "false" -> "truee" "false", "true" -> "fatr" "1", "" -> "0" "", "t" -> …
45 code-golf  string 

19
วาด / ลงจุดกราฟหัวใจ
ความท้าทายของคุณคือการวาด / พล็อตหนึ่งในใจด้านล่าง ขนาดต้องมีอย่างน้อย 50x50 พิกเซล (กราฟิกแบบเวกเตอร์ก็โอเค) คุณสามารถเลือกรูปหัวใจที่คุณต้องการวาด / พล็อต ได้รับการยอมรับแกนเส้นกริดและอื่น ๆ ต้องมีพิกัด / จุดต่างกันอย่างน้อย 100 จุดบนกราฟ หัวใจสามารถเติมสีได้หากคุณต้องการ สมการคือ: หรือ t[-1, 1]อยู่ในช่วง หรือ หรือ นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุด (ในแต่ละภาษา) เป็นไบต์ชนะ โปรดระบุผลลัพธ์ (หรือลิงก์ไปยังล่ามออนไลน์)

26
บิต, แทะหรือไบต์?
แรงบันดาลใจจากความท้าทายนี้ กำหนดจำนวนเต็มในช่วง0 <= n < 2**64เอาท์พุทคอนเทนเนอร์ขนาดต่ำสุดที่สามารถใส่ได้ บิต: 1 แทะ: 4 ไบต์: 8 สั้น: 16 int: 32 ยาว: 64 Testcases: 0 -> 1 1 -> 1 2 -> 4 15 -> 4 16 -> 8 123 -> 8 260 -> 16 131313 -> 32 34359750709 -> 64 นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ

26
บิ๊กเบนไปบ้อง
งานของคุณคือการสร้างโปรแกรมที่จะเลียนแบบบิ๊กเบน (Twitter) งาน เมื่อใดก็ตามที่ชั่วโมงใหม่เริ่มต้นขึ้น (ตามเวลาท้องถิ่นหรือ UTC) ของคอมพิวเตอร์ของคุณคุณจะต้องแสดงผลBONGซ้ำหลายhourครั้ง (โดยมีช่องว่างระหว่างคำ) ตัวอย่างเช่นเมื่อมันเป็นนาฬิกา 3 o' BONG BONG BONGคุณมีการส่งออก รูปแบบเวลาเป็นไปตามรูปแบบเวลา 12 ชั่วโมงเช่นหลังจาก 12 นาฬิกาเรามี 1 และไม่ใช่ 13 โปรแกรม / ฟังก์ชั่นจะต้องทำงานตลอดไป ตัวอย่าง: ห้ามเอาสิ่งที่อยู่ในวงเล็บออก (start: 00:34 for example) BONG (01:00) BONG BONG (02:00) (...) BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG BONG (12:00) …

30
PPCG Jeopardy: Cops
คุณรู้จักเว็บไซต์นี้ดีแค่ไหน? มาหาคำตอบกัน นี่เป็นความท้าทายของ ตำรวจและโจร ด้ายของ Robber ในฐานะตำรวจคุณจะต้อง: ค้นหาความท้าทายที่ไม่ถูกลบและไม่ปิดบนไซต์นี้เพื่อตอบ ความท้าทายที่ไม่สามารถมีแท็กต่อไปนี้: ตำรวจและโจร , ความนิยมประกวด , รหัสหลอก , โกง , ไม่ว่างช่องคลอด , คิง-the-Hill , เคล็ดลับ , คำตอบผูกมัด ความท้าทายต้องมีข้อ จำกัด เกี่ยวกับผลลัพธ์ที่ถูกต้อง เขียนส่งที่ถูกต้องสำหรับความท้าทายในภาษาฟรีที่พบในวิกิพีเดียหรือesolangs.orgหรือtryitonline การส่งไม่จำเป็นต้องแข่งขันเท่านั้นที่ถูกต้อง แก้ไข: ไม่อนุญาตการแฮชในการส่งของคุณ โพสต์การส่งที่นี่เก็บความลับของความท้าทาย คุณต้องโพสต์ข้อมูลทั้งหมดรวมทั้งภาษา (และเวอร์ชันหากมี) หลังจากนั้นหนึ่งสัปดาห์ถ้าไม่มีใครได้พบกับความท้าทายที่คุณตอบคุณสามารถโพสต์ความท้าทายว่าการส่งของคุณจะถูกตอบรับที่จุดส่งของคุณปลอดภัย มันมีค่า N คะแนนโดยที่ N คือจำนวน upvotes ของการท้าทาย (ตั้งแต่2016-11-17 ) (สูงกว่าดีกว่า) ในการถอดรหัสความท้าทายของคุณโจรต้องค้นหาความท้าทายใด ๆที่การส่งนั้นเป็นการส่งที่ถูกต้อง หมายเหตุ: ถ้าเป็นความท้าทายที่ต้องมีการส่งออกของXและคุณเอาท์พุทXYหรือYXที่Yเป็นสิ่งที่นอกเหนือจากช่องว่างที่ยื่นไม่ถูกต้องสำหรับความท้าทายที่ ไม่อนุญาตให้มีการท้าทายที่ใหม่กว่า …

20
ยิ่งใหญ่กว่าสิ่งที่คาว
รับสตริง N ความยาวของเครื่องหมายที่น้อยกว่าและมากกว่า ( <, >), แทรกจำนวนเต็ม 0 ถึง N ที่จุดเริ่มต้นและสิ้นสุดและระหว่างสัญญาณแต่ละคู่เช่นกันว่าความไม่เท่าเทียมกันทั้งหมดมีความพึงพอใจ เอาต์พุตสตริงผลลัพธ์ หากมีเอาต์พุตที่ถูกต้องหลายเอาต์พุตให้ส่งเอาต์พุตใด ๆ (และเพียงหนึ่ง) ของเอาต์พุต ตัวอย่างเช่น <<><><< มี 7 อักขระดังนั้นต้องใส่ตัวเลขทั้งหมดตั้งแต่ 0 ถึง 7 ผลลัพธ์ที่ถูกต้องคือ 2<3<4>1<5>0<6<7 เพราะความไม่เท่าเทียมกันทั้งหมดถูกนำมาทีละครั้ง 2<3 3<4 4>1 1<5 5>0 0<6 6<7 เป็นเรื่องจริง 2 < 3 < 4 > 1 < 5 > 0 < 6 < 7ถ้าต้องการให้การส่งออกอาจมีช่องว่างรอบสัญญาณเช่น …

30
นับโดยไม่ต้อง 3
พื้นหลัง เมื่อฉันอยู่ในโรงเรียนประถมเราเคยเล่นเกมในชั้นเรียนคณิตศาสตร์ที่มีดังต่อไปนี้ เด็กทุกคนนั่งอยู่ในวงกลมขนาดใหญ่และผลัดกันนับเริ่มต้นจาก1 อย่างไรก็ตามต้องข้ามตัวเลขต่อไปนี้ขณะนับ: เบอร์ที่มีหลายรายการที่ 3 ตัวเลขที่มี3ในการแทนทศนิยม ตัวเลข 15 อันดับแรกที่เด็กควรพูดคือ 1 2 4 5 7 8 10 11 14 16 17 19 20 22 25 เมื่อใดก็ตามที่ใครบางคนผิดตัวเลข - พูดหมายเลขที่ไม่ได้อยู่ในลำดับหรือข้ามหมายเลขนั่นคือ - เขาถูกนำออกจากวงกลม สิ่งนี้จะดำเนินต่อไปจนกว่าจะมีเด็กเหลือเพียงคนเดียว งาน คุณเล่นเกมนี้ไม่ดีคุณจึงตัดสินใจโกง เขียนโปรแกรมหรือฟังก์ชั่นที่ให้ลำดับของตัวเลขคำนวณหาลำดับถัดไป คุณไม่ต้องจัดการกับตัวเลขที่ไม่สามารถแสดงได้โดยใช้ชนิดตัวเลขดั้งเดิมของภาษาของคุณโดยที่โปรแกรมของคุณทำงานอย่างถูกต้องจนถึงอินพุต251และอัลกอริทึมของคุณทำงานกับอินพุตขนาดใหญ่โดยพลการ อินพุตและเอาต์พุตสามารถใช้ฐานใดก็ได้ที่สะดวก เมื่อคุณต้องปกปิดรหัสของคุณมันจะต้องสั้นที่สุด ความจริงแล้วนี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดเป็นไบต์จะเป็นผู้ชนะ กรณีทดสอบ 1 -> 2 2 -> 4 11 -> 14 22 -> …

19
การต่อสู้ของมิตรภาพ KotH
ในการท้าทายนี้คุณจะต้องสร้างมิตรภาพโดยมีเป้าหมายในการเอาชนะมิตรภาพอื่น ๆ ทั้งหมดในการต่อสู้ คบหา (ทีม) ประกอบด้วย 3 ตัวอักษร ตัวละครแต่ละตัวจะเคลื่อนไหวอย่างอิสระจากทีมที่เหลือ แต่พวกเขาจะต้องทำงานร่วมกันเมื่อต้องต่อสู้กับศัตรูของคุณ ทีมจะเผชิญหน้ากันในลักษณะหมุนหัว การชนะมีค่า 3 คะแนนความสัมพันธ์มีค่า 1 คะแนนและการสูญเสียมีค่า 0 คะแนน ตัวละครมีความสามารถ การเลือกความสามารถของตัวละครของคุณคือส่วนที่สำคัญที่สุด (และสนุก) ใน KotHนี้ พวกเขาแข็งแกร่งและมีศักยภาพที่จะกำจัดศัตรูของคุณ ตัวละครมีคะแนนสุขภาพ (HP) และเมื่อฮิต HP ของพวกเขา (หรือไปด้านล่าง) 0, พวกเขาตาย หากตัวละครทั้งหมดในทีมของฝ่ายตรงข้ามเสียชีวิตคุณก็จะชนะ! ตัวละครมีมานา การกระทำส่วนใหญ่ต้องการมานาในการดำเนินการและหากคุณมีไม่เพียงพอการกระทำนั้นจะไม่สามารถใช้ได้สำหรับคุณ ตัวละครมีความล่าช้าในการเปิด สิ่งนี้จะกำหนดจำนวนของการทำเครื่องหมายระหว่างแต่ละรอบ (เริ่มต้นที่ 100) ต่ำกว่าดีกว่า ตัวละครมีแอตทริบิวต์ ตัวละครแต่ละตัวมีฐาน 5 ตัวในแต่ละคุณลักษณะและคุณจะได้รับ 20 คะแนนคุณลักษณะเพิ่มเติมเพื่อแบ่ง หลังจากกำหนดคะแนนแอตทริบิวต์แล้วแอตทริบิวต์หลักของคุณจะถูกตั้งค่าเป็นแอตทริบิวต์สูงสุดของคุณ คุณลักษณะที่มีคือ: ความแข็งแกร่ง: ให้ …

11
เรียกใช้ Stackylogic
Stackylogic เป็นภาษาการเขียนโปรแกรมแบบลอจิกที่ฉันสร้างขึ้นซึ่งใช้เวลาในการ0's และ1' s สำหรับการป้อนข้อมูลและการส่งออกเดียว0หรือ1เมื่อเสร็จสิ้น โปรแกรม Stackylogic ประกอบด้วยเส้นที่สามารถมีตัวละครทั้งสาม01?เช่นเดียวกับว่าหนึ่ง<ในตอนท้ายของหนึ่งของเส้น สายอาจจะไม่ว่างเปล่าและบรรทัดที่มี<จะต้องมีอย่างน้อยหนึ่ง0, 1หรือ?ก่อนที่มันจะ นี่คือโปรแกรมตัวอย่างที่ (ตามที่ฉันจะอธิบาย) คำนวณNANDของสองบิต: 1 ?< 11 ? 0 ทุกบรรทัดในโปรแกรม Stackylogic ถือเป็นสแต็กโดยมีด้านล่างทางด้านซ้ายและด้านบนทางด้านขวา โดยนัยมีสแต็กเปล่า (บรรทัดว่าง) อยู่ก่อนบรรทัดแรกในโปรแกรมและหลังบรรทัดสุดท้าย <ซึ่งเราจะเรียกเคอร์เซอร์เครื่องหมายสแต็คที่จะเริ่มต้นเมื่อโปรแกรม Stackylogic มีการเรียกใช้ การดำเนินการของโปรแกรม Stackylogic ดำเนินการดังนี้: วางอักขระบนสุดออกจากสแต็กที่เคอร์เซอร์กำลังชี้ไป หากตัวละครนั้น?ให้แจ้งผู้ใช้สำหรับ0หรือหรือ1และทำราวกับว่าเป็นตัวละคร หากอักขระอยู่0ให้เลื่อนเคอร์เซอร์ขึ้นหนึ่งกอง (ไปยังบรรทัดที่อยู่เหนือบรรทัดปัจจุบัน) หากอักขระอยู่1ให้เลื่อนเคอร์เซอร์หนึ่งสแต็กลง (ไปยังบรรทัดด้านล่างบรรทัดปัจจุบัน) หากกองเคอร์เซอร์เลื่อนไปที่ว่างเปล่าเอาท์พุทค่าสุดท้ายที่โผล่ออกมาจากกอง (เสมอ0หรือหรือ1) และจบโปรแกรม มิฉะนั้นหากเคอร์เซอร์เลื่อนไปที่ไม่ว่างเปล่าให้กลับไปที่ขั้นตอนที่ 1 และทำซ้ำกระบวนการ โปรดสังเกตว่าโปรแกรม Stackylogic มักจะจบลงเพราะพวกเขาจะต้องทำให้หมดสแต็กในที่สุด ตัวอย่าง NAND ในโปรแกรม NAND เคอร์เซอร์เริ่มต้นที่?: …

23
เลขฐานสิบหกและตัวอักษร
ในการท้าทายนี้คุณจะได้รับอินพุตแปลงเป็นเลขฐานสิบหกทำการเปลี่ยนแปลงสองสามอย่างและส่งผลลัพธ์ออกมา เนื่องจากมีเพียง 16 ตัวอักษรในเลขฐานสิบหกรหัสของคุณจะต้องสั้นที่สุด ตัวอย่าง ตัวอย่างถูกคั่นด้วยบรรทัดว่าง บรรทัดแรกคืออินพุตบรรทัดที่สองแสดงขั้นตอนที่สามแสดงเอาต์พุต 234589 234589 -> 3945D -> 39454 -> 9A1E -> 9115 -> 239B -> 2392 -> 958 958 435234 435234 -> 6A422 -> 61422 -> EFEE -> 5655 -> 1617 1617 153 153 -> 99 -> 99 -> 63 1617 ขั้นตอน ข้อมูลที่ป้อนจะเป็นจำนวนเต็มบวกเสมอ เพื่อสร้างผลลัพธ์คุณจะทำตามขั้นตอนต่อไปนี้: แปลงอินพุตเป็นเลขฐานสิบหก …

30
นับผลรวมของสองสี่เหลี่ยม
กำหนดตัวเลขที่ไม่เป็นลบnให้ส่งออกจำนวนวิธีที่แสดงnเป็นผลรวมของสองจำนวนเต็มของจำนวนเต็มn == a^2 + b^2( OEIS A004018 ) โปรดทราบว่าaและbสามารถเป็นบวกลบหรือศูนย์และลำดับของมันมีความสำคัญ ไบต์ที่น้อยที่สุดจะเป็นผู้ชนะ ตัวอย่างเช่นn=25ให้12เพราะ25สามารถแสดงเป็น (5)^2 + (0)^2 (4)^2 + (3)^2 (3)^2 + (4)^2 (0)^2 + (5)^2 (-3)^2 + (4)^2 (-4)^2 + (3)^2 (-5)^2 + (0)^2 (-4)^2 + (-3)^2 (-3)^2 + (-4)^2 (0)^2 + (-5)^2 (3)^2 + (-4)^2 (4)^2 + (-3)^2 n=25นี่ค่าขึ้นไปที่มี ระวังรหัสของคุณให้n=0ดี 0 …

30
พิกเซลเดียวเคลื่อนที่ในเส้นทางวงกลม
นี่คือความท้าทายในการแสดงผลกราฟิกที่งานคือการให้รหัสสั้นที่สุดต่อภาษา งาน รหัสของคุณควรพล็อตพิกเซลสีม่วงเดียว (ค่าเลขฐานสิบหก # 800080 หรือ rgb (128, 0, 128)) โดยเลื่อนตามเข็มนาฬิกาเป็นวงกลม ควรใช้เวลา 60 วินาทีในการเดินทางรอบวงกลมอย่างเต็มรูปแบบและควรดำเนินการต่อไปเรื่อย ๆ ไม่ควรแสดงสิ่งใดบนหน้าจอหรือหน้าต่างยกเว้นพิกเซล ความกว้างของวงกลมควรเท่ากับ 0.75 (การปัดเศษอย่างเหมาะสม) ความกว้างของหน้าจอหรือหน้าต่างและพื้นหลังควรเป็นสีขาว เพื่อป้องกันการแก้ปัญหาที่โง่เง่าหน้าจอหรือหน้าต่างควรมีความกว้างอย่างน้อย 100 พิกเซล รหัสของคุณควรจะเป็นโปรแกรมเต็มรูปแบบ ภาษาและห้องสมุด คุณสามารถใช้ภาษาหรือไลบรารีที่คุณต้องการ อย่างไรก็ตามฉันต้องการทดสอบโค้ดของคุณถ้าเป็นไปได้ดังนั้นหากคุณสามารถให้คำแนะนำที่ชัดเจนเกี่ยวกับวิธีการเรียกใช้ใน Ubuntu ที่จะได้รับการชื่นชมอย่างมาก ภาษาที่ขาดหายไปยี่สิบอันดับแรก ต้องการความช่วยเหลือ. ภาษาการเขียนโปรแกรมยี่สิบอันดับแรกต่อไปนี้ไม่มีวิธีการแก้ปัญหาใด ๆ เลย C , C ++, C # , Python , PHP , Visual Basic .NET , …

18
พิมพ์ที่อยู่ IPv6 ทั้งหมด
สิ่งนี้เตือนฉันเมื่อไม่กี่ปีที่ผ่านมามีคนอัพโหลดทอร์เรนต์ "เครื่องมือแฮ็กเกอร์: รายการที่อยู่ IP ทั้งหมด" แน่นอนนี่เป็นเพียงรายการที่สร้างขึ้นจากที่อยู่ IPv4 ~ 4 พันล้านรายการ แต่ "h4xx0rz" นับพันดาวน์โหลด ดูแม่ imahacker! ตอนนี้ทุกวันนี้ทุกคนเปลี่ยนมาใช้IPv6แล้ว (ขวา?) งานของคุณคือการเขียนโปรแกรมที่พิมพ์ออกทั้งหมดอยู่ IPv6 คุณควรเขียนโปรแกรมเต็มรูปแบบที่ไม่มีอินพุตและพิมพ์ที่อยู่ IPv6 หนึ่งรายการต่อบรรทัดและไม่มีเอาต์พุตอื่น โปรแกรมของคุณจะต้องพิมพ์ที่อยู่ทั้งหมด 2 128ที่อยู่รวมถึงที่อยู่ที่ไม่ถูกต้อง แต่ละที่อยู่จะต้องพิมพ์อย่างแน่นอนหนึ่งครั้ง คุณสามารถพิมพ์ที่อยู่ในลำดับใดก็ได้ แต่ละที่อยู่อาจพิมพ์เต็มจำนวนโดยมี 8 กลุ่มเป็นเลขฐานสิบหก 4 ตัวคั่นด้วยเครื่องหมายโคลอนเช่น 2001:0db8:85a3:0000:0000:8a2e:0370:7334 คุณอาจใช้ตัวย่อมาตรฐานใด ๆ จากRFC 5952ตามดุลยพินิจของคุณ: ค่าศูนย์นำหน้าในกลุ่มอาจถูกละเว้นยกเว้นว่า0ไม่สามารถย่อได้อีก :: อาจใช้อย่างน้อยหนึ่งครั้งต่อหนึ่งที่อยู่เพื่อย่อลำดับของกลุ่มทั้งหมดที่เป็นศูนย์อย่างน้อยหนึ่งกลุ่ม ตัวเลขฐานสิบหกอาจใช้ตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่ หากคุณบรรลุข้อเสนอแนะจากตัวแทน RFC 5952 (ตัวพิมพ์เล็กเท่านั้นเป็นตัวแทนที่สั้นที่สุดที่มี::ใช้อย่างเร็วที่สุดเท่าที่เป็นไปได้ถ้ามีหลายสถานที่ที่มันสามารถนำมาใช้) คุณจะได้รับโบนัส 20% เนื่องจากขนาดของเอาต์พุตโปรแกรมของคุณไม่คาดว่าจะเสร็จในขณะที่เรานั่งอยู่ที่นั่น โปรแกรมของคุณอาจถูกขัดจังหวะด้วยวิธีการภายนอกบางอย่าง ( …

1
สตริงย่อยทั่วไปที่ยาวที่สุดในเวลาเชิงเส้น
ความท้าทายนี้เกี่ยวกับการเขียนรหัสเพื่อแก้ไขปัญหาต่อไปนี้ รับสองสาย A และ B รหัสของคุณควรส่งออกดัชนีเริ่มต้นและจุดสิ้นสุดของสตริงย่อยของ A ที่มีคุณสมบัติดังต่อไปนี้ สตริงย่อยของ A ควรตรงกับสตริงย่อยบางส่วนของ B ด้วย ไม่ควรมีสตริงย่อยของ A ที่สอดคล้องกับคุณสมบัติแรกอีกต่อไป ตัวอย่างเช่น: A = xxxappleyyyyyyy B = zapplezzz สตริงย่อยappleพร้อมดัชนี4 8(การทำดัชนีจาก 1) จะเป็นเอาต์พุตที่ถูกต้อง ฟังก์ชั่น คุณสามารถสมมติว่าอินพุตจะเป็นแบบมาตรฐานในหรือในไฟล์ในไดเรกทอรีท้องถิ่นนั่นคือตัวเลือกของคุณ รูปแบบไฟล์จะเป็นสองสตริงโดยคั่นด้วยบรรทัดใหม่ คำตอบควรเป็นโปรแกรมแบบสมบูรณ์ไม่ใช่เพียงฟังก์ชั่น ในที่สุดผมต้องการทดสอบรหัสของคุณทั้งสองที่นำมาจากสตริงสตริงในhttp://hgdownload.cse.ucsc.edu/goldenPath/hg38/chromosomes/ คะแนน นี่คือรหัสกอล์ฟที่มีเกลียว รหัสของคุณจะต้องทำงานในO(n)เวลาซึ่งnเป็นความยาวรวมของการป้อนข้อมูล ภาษาและห้องสมุด คุณสามารถใช้ภาษาใดก็ได้ที่มีคอมไพเลอร์ / ล่าม / อื่น ๆ สำหรับ Linux คุณควรใช้ไลบรารีโอเพ่นซอร์สมาตรฐานที่ไม่ได้ออกแบบมาเพื่อแก้ปัญหานี้ ในกรณีที่มีข้อโต้แย้งฉันจะนับเป็นห้องสมุดใด ๆ ที่มาพร้อมกับมาตรฐานกับภาษาของคุณหรือที่คุณสามารถติดตั้งในเครื่องอูบุนตูเริ่มต้นจากพื้นที่เก็บข้อมูลเริ่มต้น ข้อมูลที่เป็นประโยชน์ มีอย่างน้อยสองวิธีในการแก้ปัญหานี้ในเวลาเชิงเส้น …

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