คำถามติดแท็ก string

การแข่งขันเพื่อแก้ปัญหาเฉพาะผ่านการใช้งานและการจัดการของสตริง

9
Love Tester Code Golf
สร้างโปรแกรมที่นับจำนวนตัวอักษรทั้งหมดที่ใช้ร่วมกันเป็นสองชื่อและค้นหาผลิตภัณฑ์ที่มีความยาวเพื่อใช้เป็น "เครื่องทดสอบความรัก" เงื่อนไข: คุณอาจไม่ได้รับเอาต์พุต 1: 1 (เป็น 3 ใน 3 และอื่น ๆ ) อินพุต สองชื่อจาก STDIN หรือทางเลือกที่ใกล้เคียงที่สุด เอาท์พุต คำนวณxเป็นจำนวนตัวอักษรทั้งหมดที่เหมือนกันระหว่างสองชื่อโดยไม่สนใจขนาดตัวพิมพ์ คำนวณyเป็นผลคูณของความยาวของชื่อ จากนั้นเอาต์พุตไปยัง STDOUT หรือทางเลือกที่ใกล้เคียงที่สุดคือ Name1 and Name2 have x out of y chances of love. ตัวอย่าง การป้อนข้อมูล: Wesley Polly เอาท์พุท: Wesley and Polly have 2 out of 30 chances of love. …

7
ค้นหาสตริงดนตรีที่ยาวที่สุด
สตริงดนตรีคือสตริงใด ๆ ที่สามารถเล่นบนแป้นพิมพ์เปียโน สำหรับพวกเราที่ไม่ได้ถูกบังคับให้เรียนเปียโนในฐานะเด็กนี่คือลักษณะของแป้นพิมพ์ ดังนั้นสตริงfeed a dead cabbageจึงเป็นสตริงดนตรีเพราะตัวอักษรทุกตัวตรงกับข้อความเหล่านี้ ความท้าทายของคุณคือการเขียนโปรแกรมที่ใช้สตริงเป็นอินพุตจาก STDIN และค้นหาสตริงดนตรีที่ยาวที่สุด จากนั้นโปรแกรมของคุณจะต้องพิมพ์สตริงย่อยและความยาว นี่คือตัวอย่างอินพุต / เอาท์พุตบางส่วน อินพุต: "ฟีดฉัน! ฉันหิว!" ผลลัพธ์: ฟีด 4 อินพุต: ไม่ไม่ไม่ไม่มีเพลง! Ouput: 0 การป้อนข้อมูล: "A **bad** !!!fAd82342" ผลลัพธ์: abadfad 7 อินพุต: "Good golfing!" ผลลัพธ์: dg 2 กฎระเบียบ เอาต์พุตของคุณอาจเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก แต่ต้องไม่มีเครื่องหมายวรรคตอนหรือช่องว่าง จะมีการใช้อักษรตัวใหญ่และเครื่องหมายวรรคตอนในสตริงป้อนข้อมูล แต่สิ่งนี้จะไม่ส่งผลกระทบต่อสตริงย่อยที่ถูกพิจารณาว่าเป็น "ดนตรี" หรือไม่ จะต้องมีช่องว่างระหว่างสายอักขระดนตรีและหมายเลข

3
IMP: ตัวแยกวิเคราะห์การคูณโดยนัย
แจ็คชอบภาษาการเขียนโปรแกรม C แต่ไม่ชอบเขียนนิพจน์เช่นV=a*b*h; การคูณค่า เขาอยากจะเขียนV=abh;แทนทำไมผู้แปลจึงควรคร่ำครวญถึงabhสัญลักษณ์ที่ไม่ได้นิยามเนื่องจากint a, b, h;มีการนิยามดังนั้นเราจึงสามารถอนุมานการคูณได้ ช่วยเขาใช้เครื่องมือแยกวิเคราะห์ที่ถอดรหัสคำศัพท์การคูณเดียวให้ทราบชุดของตัวแปรที่กำหนดในขอบเขตปัจจุบัน เพื่อความง่ายไม่นับรวมจำนวน (ตาม2*a*b) เข้าด้วยกันจะปรากฏเฉพาะตัวแปรเท่านั้น อินพุตเป็นคำศัพท์การคูณ T , เติมเต็ม regexp: [a-zA-Z_][a-zA-Z_0-9]* และตัวแปรชุด Z การแยก P ของคำว่า T บนชุดตัวแปร Z คือสตริงที่ตอบสนองต่อไปนี้: หลังจากลบสิ่งที่เกิดขึ้นทั้งหมด*จาก P เราได้รับ T อาจเป็นชื่อตัวแปรจาก Z หรือประกอบด้วยชื่อตัวแปรที่เหมาะสมจาก Z แยกด้วย*อักขระเดี่ยว วิธีแก้ปัญหาควรพิมพ์การแยกวิเคราะห์คำทั้งหมด ตัวอย่าง: Vars a, c, ab, bc Term abc Solution ab*c, a*bc Vars ab, …

1
ดัชนีสตริงย่อยสั้นที่สุด
ฉันเป็นคนขี้เกียจ แต่ก็เป็นคนที่มีประสิทธิภาพซึ่งหลายคนคงเป็นเช่นกัน ดังนั้นเมื่อใดก็ตามที่ฉันทำสิ่งที่ฉันต้องการจะทำด้วยความพยายามน้อยที่สุด นี่คือเหตุผลที่ฉันขอให้คุณแก้ปัญหานี้ให้ฉัน สิ่งที่ฉันมีที่นี่เป็นเอกสารแปลก ๆ ในทุกบรรทัดของเอกสารนี้เป็นคำเดียวหรือวลีสั้น ๆ เอกสารไม่ได้เรียงลำดับ แต่ก็โอเคฉันรู้ว่าทุกอย่างอยู่ที่ไหน ฉันสามารถใช้ความช่วยเหลือในการค้นหาสิ่งต่าง ๆ ได้เร็วขึ้นและเพื่อที่ฉันต้องการรายการที่สอง นี่คือที่ที่คุณเข้ามาสำหรับทุกบรรทัดของข้อความในเอกสารนี้ฉันต้องการตัวระบุบางอย่าง บางสิ่งที่ฉันสามารถทำได้CTRL+ Fแต่มันไม่สามารถเกินความจำเป็นอย่างยิ่งที่จะได้ผลลัพธ์นั้น อินพุตตัวอย่าง: (blank) an apple spiderman 3 7pm pick up laundry tequila fake mustache dishes on wednesday banana biscuits (blank) ตัวอย่างผลลัพธ์: ap,3,7,q,f,w,ba,bi ฉันจะทำซ้ำตัวเองที่นี่เพื่อให้แน่ใจว่าเราอยู่ในหน้าเดียวกัน: อินพุตเป็นไฟล์ข้อความที่ไม่ฟอร์แมตที่มีรายการซึ่งคั่นด้วยตัวแบ่งบรรทัด ฉันมีที่นี่ในรูปแบบ. txt เรียกว่า "STUFF.TXT" บรรทัดแรกและบรรทัดสุดท้ายของเอกสารว่างเปล่า บรรทัดอื่นทุกบรรทัดมีรายการความยาว> 0 ไฟล์มีอักขระตัวอักษรผสมตัวเลขเท่านั้น (ตัวพิมพ์เล็กทั้งหมด) เว้นวรรคและตัวแบ่งบรรทัด ผลลัพธ์ที่ต้องการคือรายการของตัวระบุตามลำดับเช่นเดียวกับรายการเดิมของฉัน …

15
ผลรวมของสตริงโดยไม่ต้องแปลง
คุณต้องรับอินพุตสตริง 2 ตัวและแสดงผลรวมของสองสตริงโดยไม่แปลงเป็น int หรือใช้ชนิดข้อมูลตัวเลขใด ๆ อดีต string one = "123"; string two = "456"; string sum = "579"; สมมติว่าสายจะไม่ใหญ่กว่า 10 หลัก นี่คือรหัสกอล์ฟและคำตอบที่สั้นที่สุดในตัวละครชนะ การแก้ไขคำตอบใน C # จะทำให้ฉันยิ้มได้ :) แก้ไข: การแปลงเป็น int สามารถกำหนดเป็นอะไรก็ได้ในลักษณะนี้ Int.TryParse, (int), Convert.ToIntฯลฯ

3
การเพิ่มประสิทธิภาพหน่วยความจำที่ จำกัด
ระยะห่างของการแก้ไข (หรือ Levenshtein)ระหว่างสองสายคือจำนวนที่น้อยที่สุดของการแทรกอักขระเดียวการลบและการแทนที่ที่จำเป็นในการแปลงสตริงหนึ่งเป็นอีกสตริงหนึ่ง หากทั้งสองสตริงมีความยาว n แต่ละตัวเป็นที่ทราบกันดีว่าสิ่งนี้สามารถทำได้ในเวลา O (n ^ 2) โดยการโปรแกรมแบบไดนามิก รหัสงูใหญ่ต่อไปดำเนินการคำนวณนี้สำหรับสองสายและs1s2 def edit_distance(s1, s2): l1 = len(s1) l2 = len(s2) matrix = [range(l1 + 1)] * (l2 + 1) for zz in range(l2 + 1): matrix[zz] = range(zz,zz + l1 + 1) for zz in range(0,l2): for sz in …

4
เส้นทางเดินป่า
หลังจากขี่เรือแคนูที่ร้ายกาจของคุณแล้วคุณก็ตกลงไปที่น้ำตกที่ปลายน้ำเชี่ยว เรือแคนูของคุณระเบิด แต่คุณรอดชีวิตจากการระเบิด อย่างไรก็ตามการเดินทางทางแม่น้ำของคุณก็หมดไปจากแผนที่ตอนนี้คุณพบว่าตัวเองหลงทางในป่า โชคดีที่คุณยังมีทักษะการเขียนโปรแกรมดังนั้นคุณตัดสินใจที่จะแกะสลักโปรแกรมไว้ที่ด้านข้างของต้นไม้เพื่อช่วยคุณค้นหาเส้นทางผ่านป่า อย่างไรก็ตามมีพื้นที่ผิวบนต้นไม้ไม่มากดังนั้นคุณต้องทำให้โปรแกรมของคุณสั้นที่สุด ฟอเรสต์สามารถอธิบายได้ว่าเป็นตัวอักษรnโดยn( n > 5) ของอักขระซึ่งจะประกอบด้วยตัวอักษรตัวพิมพ์เล็กa-zเท่านั้น ป่าตัวอย่าง: anehcienwlndm baneiryeivown bnabncmxlriru anhahirrnrauc riwuafuvocvnc riwnbaueibnxz hyirorairener ruwiiwuauawoe qnnvcizdaiehr iefyioeorauvi quoeuroenraib cuivoaisdfuae efoiebnxmcsua คุณอาจสังเกตเห็นว่าในป่านี้มีเส้นทแยงมุมของaตัวละครที่วิ่งผ่านจากมุมบนซ้ายไปยังมุมขวาล่าง นี่คือ "เส้นทาง" ผ่านป่าซึ่งจะพาคุณไปที่ไหนสักแห่งถ้าคุณทำตาม งานของคุณคือการเขียนโปรแกรมที่จะหาเส้นทางเอกพจน์ ตอนนี้ฉันจะอธิบายสิ่งที่สื่อความหมายถึง "เส้นทาง" ในความท้าทายนี้โดยเฉพาะ "เส้นทาง" ในการท้าทายนี้ถูกกำหนดให้เป็นเส้นที่คล้ายกับเส้นทางซึ่งอาจถูกสร้างขึ้นด้วยอัลกอริทึม Bresenhamแต่ด้วยข้อกำหนดเพิ่มเติมที่: บรรทัดต้องมีความยาวอย่างน้อย 6 อักขระ แต่ละ collinear (ติดกันอย่างสมบูรณ์) กลุ่มของอักขระในบรรทัดจะต้องมีความยาวเท่ากัน มันจะเริ่มที่ขอบหนึ่งของป่าและจบที่ขอบตรงข้าม (ดูความคิดเห็นของฉันที่นี่เพื่อทำอย่างละเอียด) หากต้องการอธิบายข้อกำหนดที่สองให้ชัดเจนยิ่งขึ้นให้พิจารณาบรรทัดต่อไปนี้: aaa aaa aaa aaa …

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

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

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

5
Tag Parser ง่าย ๆ
นี่คือรูปแบบของตัวแยกวิเคราะห์ HTML ที่ให้อภัย แทนการแยกวิเคราะห์ HTML และการแยกแอตทริบิวต์ในโค้ดกอล์ฟนี้ตัวแยกวิเคราะห์แท็กจะง่าย เขียนฟังก์ชั่นที่แยกวิเคราะห์โครงสร้างแท็กและส่งกลับแบบฟอร์มพาเรนต์ แท็กเปิดประกอบด้วยตัวอักษรตัวเล็กหนึ่งตัวและแท็กปิดประกอบด้วยตัวอักษรตัวใหญ่หนึ่งตัว ยกตัวอย่างเช่นการaAbaABแยกวิเคราะห์ลงไป(a)(b(a))หรือใน <a></a><b><a></a></b>HTML, แน่นอนแท็กสามารถอยู่ในการวางตำแหน่งและรัง ต้องจัดการแท็กที่ปิด "ก่อนกำหนด" ยกตัวอย่างเช่นในabcAการAปิดนอกสุดดังนั้นจึงแยกออกเป็นa(a(b(c))) ปิดแท็กพิเศษจะถูกละเว้นเพียง: แยกวิเคราะห์ลงในaAB(a) แท็กที่ทับซ้อนกันจะไม่ถูกจัดการ ตัวอย่างเช่นabABแยกวิเคราะห์(a(b))ไม่ใช่(a(b))(b)ตามกฎก่อนหน้าของแท็กปิดพิเศษ ( abAB-> abA( (a(b))) + B(พิเศษ)) สมมติว่าไม่มีช่องว่างและอักขระผิดกฎหมายอื่น ๆ ในอินพุต คุณไม่ได้รับอนุญาตให้ใช้ห้องสมุดใด ๆ นี่คือการดำเนินการอ้างอิงและรายการกรณีทดสอบ: #!/usr/bin/python def pars(inpu): outp = "" stac = [] i = 0 for x in inpu: lowr = x.lower() if …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.