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

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

7
เลื่อนไปที่หน้า ASCII ที่พิมพ์ได้
พื้นหลัง การแปลงแบบย้ายไปด้านหน้า (MTF) เป็นอัลกอริทึมการเข้ารหัสข้อมูลที่ออกแบบมาเพื่อปรับปรุงประสิทธิภาพของเทคนิคการเข้ารหัสแบบเอนโทรปี ในอัลกอริทึมการบีบอัด bzip2จะถูกนำไปใช้หลังจากการแปลง Burrows – Wheeler (ดังที่เห็นในBurrows, Wheeler และ Back ) โดยมีวัตถุประสงค์เพื่อเปลี่ยนกลุ่มของอักขระซ้ำเป็นจำนวนเต็มจำนวนน้อยที่ไม่บีบอัดได้ง่าย คำนิยาม สำหรับจุดประสงค์ของการท้าทายนี้เราจะกำหนดเวอร์ชัน ASCII ที่พิมพ์ได้ของ MTF ดังนี้: รับสายป้อนsใช้อาร์เรย์ที่ว่างเปล่าRสตริงงทุกตัวอักขระ ASCII (0x20 เพื่อ 0x7E) และทำซ้ำต่อไปนี้สำหรับตัวละครแต่ละตัวคของs : ผนวกดัชนีของคในdเพื่อR ย้ายcไปที่ด้านหน้าของdเช่นลบcจากdและเติมลงในส่วนที่เหลือ สุดท้ายเราใช้องค์ประกอบของrเป็นดัชนีในd ต้นฉบับ และดึงอักขระที่เกี่ยวข้อง ตัวอย่างทีละขั้นตอน INPUT: "CODEGOLF" 0. s = "CODEGOLF" d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [] 1. s = …

8
ลบบรรทัดเดียวและความคิดเห็นหลายบรรทัดจากสตริง
เป้าหมาย ใช้ภาษาการเขียนโปรแกรมที่คุณเลือกเขียนโปรแกรมที่สั้นที่สุดเพื่อกำจัดความคิดเห็นจากสตริงที่แทนโปรแกรม C อินพุต สตริงสามารถนำมาเป็นรูปแบบของการป้อนข้อมูลใด ๆ แต่ก็อาจถูกนำมาเป็นตัวแปร คำแนะนำ ความคิดเห็นที่แตกต่างกันสองประเภทจะถูกลบออก: ความคิดเห็นหลายบรรทัดเริ่มต้นด้วย/*และลงท้ายด้วย*/ ความคิดเห็นบรรทัดเดียวเริ่มต้นด้วย//และลงท้ายด้วยตัวแบ่งบรรทัดสไตล์ Linux (LF, \n) ความคิดเห็นภายในสตริงจะไม่ถูกลบ สำหรับจุดประสงค์ของการท้าทายนี้คุณจะต้องพิจารณา"สตริงที่ถูก จำกัด โดยเฉพาะอย่างยิ่งคุณสามารถเพิกเฉยต่อความเป็นไปได้ของ'ตัวอักษรที่ถูก จำกัด ตัวอักษร นอกจากนี้คุณยังสามารถละเว้น Trigraphs และการดำเนินการต่อเนื่องของบรรทัด ( /\<LF>*...) ตัวอย่าง การป้อนข้อมูล: #include <stdio.h> int main(int argc, char** argv) { // this comment will be removed if (argc > 1) { printf("Too many arguments.\n"); // …

6
ช่วยในการจำ 23940
ระบบที่สำคัญคือช่วยในการจำอุปกรณ์สำหรับการแปลงตัวเลขเป็นคำพูดเพื่อให้พวกเขาสามารถจดจำได้ง่ายขึ้น มันขึ้นอยู่กับวิธีที่คำพูดออกเสียง แต่เพื่อให้สิ่งต่าง ๆ ง่ายขึ้นสำหรับความท้าทายเราจะกังวลเฉพาะกับวิธีการสะกดคำ ซึ่งหมายความว่าจะมีการแปลงที่ไม่ถูกต้อง แต่ก็ไม่เป็นไร ในการแปลงตัวเลขเป็นคำโดยใช้ระบบหลักที่ง่ายของเรา: แทนที่แต่ละ0ด้วยหรือs z(บางคนอาจเป็นsและบางคนอาจเป็นzเหมือนกันไปด้านล่าง) แทนที่แต่ละ1กับtหรือหรือdth แทนที่แต่ละกับ2n แทนที่แต่ละกับ3m แทนที่แต่ละกับ4r แทนที่แต่ละกับ5l แทนที่แต่ละ6กับjหรือหรือshch แทนที่แต่ละ7กับkหรือcหรือหรือgq แทนที่แต่ละ8ด้วยหรือfv แทนที่แต่ละ9ด้วยหรือpb เพิ่มตัวอักษรaehiouwxyใดก็ได้ในปริมาณใด ๆ ที่จะทำให้คำภาษาอังกฤษที่จริงถ้าเป็นไปได้ ยกเว้นอย่างเดียวคือว่าhอาจจะไม่ถูกแทรกหลังหรือsc ตัวเลขอาจเป็นสตริงใด ๆ ของตัวเลข 0-9 (ไม่มีทศนิยมหรือเครื่องหมายจุลภาคหรือเครื่องหมาย) คำสามารถประกอบด้วยตัวอักษรตัวพิมพ์เล็ก az เท่านั้น ตัวอย่าง จำนวน32ต้องถูกแปลงเป็น?m?n?, ซึ่ง?แทนสตริงใด ๆ ที่ จำกัด ที่ทำจากตัวอักษรaehiouwxy(สตริงจากmonoid อิสระถ้าคุณต้องการ) : มีหลายวิธีนี้อาจจะทำให้เป็นคำภาษาอังกฤษที่แท้จริงmane, moon, yeomanฯลฯ จำนวน05จะถูกแปลงเป็นหรือ?s?l? ?z?l?เป็นไปได้ที่บางคนมีeasily, และhassle ไม่อนุญาตให้ใช้hazelคำshawlนี้เพราะhอาจไม่ได้อยู่หลังs; 65มันจะอ่านไม่ถูกต้องเป็น ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ใช้สายอักขระของตัวเลข …
19 code-golf  string 

13
เลเยอร์ Sierpinski
เริ่มต้นด้วย/\คุณสามารถสร้างสามเหลี่ยมเช่นเดียวกับรูปแบบSierpinskiโดยการเพิ่มบรรทัดด้านล่างที่ ... กิ่งก้านที่หลวม/หรือ\แยกอีกเป็นสองกิ่ง: /\. การชนกันของกิ่งไม้\/จะตายโดยไม่มีสิ่งใด (ยกเว้นที่ว่าง) ภายใต้กิ่งไม้ ทำซ้ำกฎเหล่านี้ให้ผล /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... ( แรงบันดาลใจจาก ViHart ) เขียนโปรแกรมหรือฟังก์ชั่นที่รับจำนวนเต็มบวก N และพิมพ์บรรทัด N แรกของรูปแบบนี้ไปยัง stdout โดยไม่มีช่องว่างนำหน้าหรือต่อท้ายเกินกว่าที่จำเป็น ตัวอย่างเช่นถ้าอินพุตเป็น1เอาต์พุตต้องเป็น /\ หากอินพุตเป็น2เอาต์พุตจะต้องเป็น /\ /\/\ หากอินพุตเป็น8เอาต์พุตจะต้องเป็น /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ และอื่น …

30
สตริงเป็นไบนารี
นี่คือความท้าทายของรหัสกอล์ฟ เช่นเดียวกับชื่อเรื่องเขียนโปรแกรมเพื่อแปลงสตริงอักขระ ASCII ให้เป็นไบนารี ตัวอย่างเช่น: "Hello World!"1001000 1100101 1101100 1101100 1101111 100000 1010111 1101111 1110010 1101100 1100100 100001ควรเปลี่ยนเป็น หมายเหตุ: ฉันสนใจเป็นพิเศษในการนำ pyth มาใช้

9
การสร้างไฟล์บิตแมป PBM จากข้อความ ASCII
รูปแบบPBM (Portable BitMap)เป็นรูปแบบบิตแมป ASCII ขาวดำที่ง่ายมาก นี่คือตัวอย่างสำหรับตัวอักษร 'J' (คัดลอกวางจากลิงค์ wikipedia): P1 # นี่คือตัวอย่างบิตแมปของตัวอักษร "J" 6 10 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 …

10
พวกเขาโทรมาจากที่ไหน
เมื่อโทรออกต่างประเทศหมายเลขโทรศัพท์จะถูกนำหน้าด้วยรหัสที่ระบุว่าประเทศนั้นตั้งอยู่ที่ใดรหัสเหล่านี้เป็นรหัสนำหน้าซึ่งหมายความว่าไม่มีรหัสใดเป็นรหัสนำหน้าของอีกประเทศหนึ่ง ตอนนี้ก่อนหน้านี้วันนี้คุณไม่ได้รับสายและคุณอยากรู้ว่าการโทรนั้นมาจากไหน ดังนั้นคุณต้องการค้นหารหัสโทร แต่เป็นรหัสคำนำหน้าคุณไม่แน่ใจว่าจะจบที่ไหนดังนั้นคุณตัดสินใจที่จะเขียนโปรแกรมเพื่อแยกรหัสการโทรออกจากหมายเลขที่เหลือ อินพุต เป็น input 0-9คุณจะได้รับสตริงที่ประกอบด้วยตัวเลข ตัวเลขสองสามตัวแรกจะเป็นหนึ่งในรหัสโทรศัพท์ของประเทศที่ระบุไว้ด้านล่าง (ซึ่งหมายความว่าจะไม่มีหลักแรกเลย0) หลังจากรหัสโทรประเทศส่วนที่เหลือของอินพุตจะมีตัวเลขเป็นศูนย์หรือมากกว่าในลำดับใด ๆ - ไม่ใช่รับประกันว่าจะเป็นหมายเลขโทรศัพท์ที่ถูกต้อง โปรแกรมของคุณจะต้องสามารถจัดการอินพุตที่มีอย่างน้อย 15 หลัก เอาท์พุต โปรแกรมของคุณควรส่งออกรหัสการโทรประเทศที่ไม่ซ้ำใครซึ่งเป็นส่วนนำหน้าของหมายเลข ผลลัพธ์ที่ถูกต้องมีดังนี้: 1 20 211 212 213 216 218 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 …

26
แปลงสตริงตัวเลขจากคำเป็นจำนวนเต็ม
แปลงสตริงที่มีตัวเลขเป็นคำเป็นจำนวนเต็มโดยไม่คำนึงถึงศูนย์นำหน้า ตัวอย่าง "four two"42-> "zero zero zero one"1-> สมมติฐาน การส่งสามารถสันนิษฐานได้ว่า: สตริงอินพุตประกอบด้วยคำหลักที่คั่นด้วยช่องว่าง คำทั้งหมดใช้งานได้ (ในช่วง "ศูนย์" .. "เก้า") และตัวพิมพ์เล็ก พฤติกรรมสำหรับการป้อนข้อมูลที่ว่างเปล่าไม่ได้กำหนด สตริงอินพุตจะแทนตัวเลขที่ไม่ได้ลงนามในช่วงintและจะไม่เป็นสตริงว่างเสมอ เกณฑ์การให้คะแนน คำตอบจะได้คะแนนเป็นไบต์ด้วยจำนวนไบต์ที่น้อยลง

30
ลบช่องว่างนำหน้าส่วนกลาง
เมื่อเขียนโค้ดใน Python บางครั้งคุณต้องการสตริงหลายบรรทัดภายในฟังก์ชันเช่น def f(): s = """\ Line 1 Line 2 Line 3""" (แบ็กสแลชคือการลบ newline ชั้นนำ) อย่างไรก็ตามหากคุณพยายามที่จะพิมพ์ออกมาจริง ๆsคุณจะได้รับ Line 1 Line 2 Line 3 นั่นไม่ใช่สิ่งที่เราต้องการเลย! มีช่องว่างนำหน้ามากเกินไป! ความท้าทาย รับสตริงหลายบรรทัดที่ประกอบด้วยอักขระตัวอักษรและตัวเลขช่องว่างและบรรทัดใหม่เท่านั้นลบช่องว่างทั่วไปออกจากจุดเริ่มต้นของแต่ละบรรทัด แต่ละบรรทัดรับประกันว่าจะมีอักขระที่ไม่ใช่ช่องว่างอย่างน้อยหนึ่งตัวและจะไม่มีช่องว่างต่อท้าย เอาต์พุตอาจไม่มีช่องว่างภายนอกไม่ว่าจะเป็นก่อนหรือหลังเอาต์พุตทั้งหมดหรือแต่ละบรรทัด (ยกเว้นบรรทัดใหม่ที่เป็นทางเลือกหนึ่งบรรทัด) อินพุตอาจผ่าน STDIN หรือฟังก์ชันอาร์กิวเมนต์และเอาต์พุตอาจผ่าน STDOUT หรือฟังก์ชันส่งคืนค่า คุณไม่สามารถใช้ builtins ใด ๆ ที่ถูกออกแบบมาเพื่อสตริงหลาย dedent textwrap.dedentหรือดำเนินงานตรงนี้เช่นงูหลาม นี่คือรหัสกอล์ฟดังนั้นการแก้ปัญหาในไบต์ที่น้อยที่สุดชนะ ช่องโหว่มาตรฐานใช้ กรณีทดสอบ "a" -> "a" …

5
บทสัมภาษณ์: The Front Nine
บทสัมภาษณ์: The Front Nine นี่เป็นครั้งแรกของความท้าทายที่ได้รับแรงบันดาลใจจากคำถามการสัมภาษณ์งาน คุณเดินเข้าไปในสำนักงานที่เจ้านายในอนาคตของคุณนั่งอยู่ “ เข้ามาแล้วนั่งลง” เขาพูด คุณนั่งลงอย่างหงุดหงิดเพื่อให้แน่ใจว่าชุดที่เร็วและเป็นมืออาชีพของคุณปราศจากริ้วรอย เขาถามคำถามคุณมากมายเกี่ยวกับการศึกษาประสบการณ์การทำงานก่อนหน้าและอื่น ๆ คุณตอบคำถามเหล่านี้เป็นส่วนใหญ่อย่างซื่อสัตย์เพิ่มการจัดแต่งเล็กน้อยที่นี่และที่นั่นเพื่อทำให้ตัวเองเสียงดีขึ้น เขาโน้มตัวไปข้างหน้าและเริ่มพูดอีกครั้ง "คุณเคยได้ยินชื่อของการเล่นกอล์ฟ?" ทำไมใช่คุณชอบที่จะตีกอล์ฟและทำมันบ่อยๆในเวลาว่างของคุณ "เยี่ยมมากส่วนสุดท้ายของการสัมภาษณ์คือการตรวจสอบทางเทคนิคคุณจะได้รับมอบหมายให้เขียนโค้ดเพื่อแก้ปัญหาต่าง ๆ ... " เขาส่งกระดาษให้คุณ คุณรีบเหลียวมองมัน peasy ง่าย ๆ ตอนนี้เขาถามเกี่ยวกับการเล่นกอล์ฟทำไม "คุณจะได้รับคะแนนตามขนาดรวมของการแก้ปัญหาเหล่านี้หากคุณสามารถให้คะแนนต่ำกว่าผู้สมัครคนอื่น ๆ งานของคุณจะเป็นของคุณ" โอ้ "เหมือนกอล์ฟมีปัญหา 18 ข้อแบ่งออกเป็นสองชุด 9. คุณสามารถใช้ภาษาใดก็ได้ที่คุณต้องการแก้ปัญหาเรามีนักแปลและนักแปลสำหรับทุกภาษาที่คุณได้ยินและแน่นอนว่าคุณมี โชคดี! " งาน ภารกิจที่ 1: ตารางสูตรคูณ รับจำนวนเป็นนำเข้าส่งออกตารางการคูณสำหรับจำนวนเต็มบวกในช่วงn จะอยู่ในช่วง ตัวเลขทั้งหมดควรจัดชิดซ้ายในตาราง ใช้อักขระสำหรับมุมซ้ายบน[1, n]n[1, 12]x ตัวอย่าง: n=4 x …

12
แต่งเติมในช่องว่าง
ให้เราบอกว่าเรามีชุดของฟังก์ชั่นเฉพาะเกี่ยวกับสตริง ฟังก์ชั่นเหล่านี้มีลักษณะเหมือนเติมในช่องว่างหรือ madlib ยกเว้นว่าพวกเขาจะใช้เพียงหนึ่งอินพุตและใช้เพื่อเติมลงในช่องว่างทั้งหมดของพวกเขา ตัวอย่างเช่นเราอาจมีฟังก์ชั่นที่ดูเหมือน I went to the ____ store and bought ____ today. หากเราใช้ฟังก์ชันนี้กับสตริงcheeseผลลัพธ์จะเป็น: I went to the cheese store and bought cheese today. เราสามารถแสดงฟังก์ชันเหล่านี้เป็นรายการสตริงที่ไม่ว่างโดยที่ช่องว่างเป็นเพียงช่องว่างระหว่างสตริง ตัวอย่างฟังก์ชั่นของเราด้านบนจะเป็น: ["I went to the ", " store and bought ", " today."] ด้วยการแทนค่านี้มีเพียงหนึ่งการแทนสำหรับทุก ๆ ฟังก์ชันของการเรียงลำดับนี้และเพียงหนึ่งฟังก์ชันสำหรับแต่ละการแทนเท่านั้น สิ่งที่เรียบร้อยจริงๆคือชุดของฟังก์ชั่นดังกล่าวปิดภายใต้องค์ประกอบ กล่าวคือการจัดองค์ประกอบของฟังก์ชั่นสองอย่างของเราเป็นหน้าที่หนึ่งของฟังก์ชันเหล่านี้เสมอ เช่นถ้าฉันเขียนฟังก์ชันของเราด้านบนด้วย ["blue ", ""] (ฟังก์ชั่นที่blueเพิ่มเข้าสู่อินพุต) …

8
Ternary-if Converter
ใน Java / .NET / C / JavaScript / ฯลฯ คุณสามารถใช้ ternary-ifs เพื่อตัดคำสั่ง if-shorten ให้สั้นลง ตัวอย่าง (ใน Java): // there is a String `s` and an int `i` if(i<0)s="Neg";else if(i>0)s="Pos";else s="Neut"; สามารถย่อให้สั้นด้วย ternary- หาก: s=i<0?"Neg":i>0?"Pos":"Neut"; ท้าทาย: อินพุต: if-else ปกติ (เป็นไปได้ด้วยการซ้อน) ที่ตั้งค่าตัวแปรเดียว เอาต์พุต: ternary ที่แปลงแล้วหาก กฏท้าทาย: คุณสามารถสมมติว่ากรณีอื่นทั้งหมดเป็นไปได้โดยไม่ต้องวงเล็บ (ดังนั้นถ้าบล็อกอื่น / if- ถ้า …
18 code-golf  string 

22
ssTTsSTtRrriinInnnnNNNIiinngg
ท้าทาย สำหรับอักขระแต่ละตัวของสตริงยกเว้นตัวสุดท้ายให้ทำดังนี้ เอาท์พุทตัวละครปัจจุบัน ตามด้วยการสุ่มเอาท์พุทจากรายการต่อไปนี้เป็นจำนวนสุ่มครั้งระหว่าง 1 - 5 (รวม): ตัวละครปัจจุบัน อักขระตัวถัดไปของสตริง เวอร์ชัน switchcase ของตัวละครที่คุณเปิดอยู่ รุ่น switchcase ของตัวละครต่อไปของสตริง กรณีทดสอบ String -> SSSTSStrTrIiinIIngn , . , . , . Hello world! -> ,,, .. , ,, .... , , .. .. . HHH HHEeelLlLllooO wwOworOOrrrRllDd!!D Programming Puzzles and Code Golf -> PrPPrRrOooooogggRgGraAraaaMMMmmmimMIiininGGgG PPPPuZzZZzZzzZzllLLEEeEsEsssS …

9
ระยะทาง Hamming สูงสุดระหว่างรายการของสายที่มีเบาะ
ระยะห่างของ Hamming ระหว่างสองสายที่มีความยาวเท่ากันคือจำนวนตำแหน่งที่อักขระที่เกี่ยวข้องแตกต่างกัน หากสตริงไม่ได้มีความยาวเท่ากันระยะ Hamming จะไม่ถูกกำหนด ท้าทาย เขียนโปรแกรมหรือฟังก์ชั่นที่ค้นหาระยะทางที่ใหญ่ที่สุดของ Hamming จากทุกคู่ของสตริงจากรายการของสตริงที่มีเบาะตามที่จำเป็นตามกฎที่อธิบายด้านล่าง a-zA-Z0-9ตัวละครจะมาจากภายใน สตริงอาจมีความยาวไม่เท่ากันดังนั้นสำหรับการเปรียบเทียบแต่ละครั้งสตริงที่สั้นกว่าจะต้องมีการเสริมเบาะดังนี้: ตัดสตริงจากจุดเริ่มต้นหลาย ๆ ครั้งตามต้องการเพื่อให้ตรงกับความยาวที่ต้องการ เปลี่ยนกรณีของตัวอักษรแต่ละการตัดเวลาคี่ (1, 3, 5, ฯลฯ ) ปล่อยให้สิ่งที่อยู่ข้างนอกa-zA-Zไม่เปลี่ยนแปลงเมื่อห่อ ตัวอย่างเช่นสมมติว่าคุณจำเป็นต้องวางสตริงอักขระ 5 ตัวab9Cdเพื่อให้ลงท้ายด้วยอักขระ 18 ตัว คุณจะจบลงด้วย: ab9CdAB9cDab9CdAB9 ^^^^^ ^^^ ด้วยการ^เพิ่มภายใต้การล้อมรอบที่ 1 และ 3 เพื่อไฮไลต์การเปลี่ยนแปลงของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ Input / Output รูปแบบอินพุต / เอาต์พุตมีความยืดหยุ่น คุณสามารถสมมติว่าอินพุตมีอย่างน้อยสองสตริงและสตริงทั้งหมดจะมีอักขระอย่างน้อยหนึ่งตัว ผลลัพธ์เป็นจำนวนเต็ม กฎระเบียบ นี่คือรหัสกอล์ฟ ใช้กฎมาตรฐาน กรณีทดสอบ [ "a", …
18 code-golf  string 

8
ขีดฆ่า 44 ยังเป็นปกติ 44; (
บทนำ เมื่อวันที่ 24 มีนาคม 2015 @isaacgแข็งแรงเล่นกอล์ฟคำตอบของเขา Pyth 44-42 ไบต์ เนื่องจากเครื่องหมายขีดฆ่า 44 ( 44 ) ดูเหมือนว่าปกติ 44 มาก@Optimizerจึงแสดงความคิดเห็นต่อไปนี้: ถูกขีดฆ่าออก 44 ยังคงเป็นเรื่องปกติ 44 :( หลังจากนั้นในวันที่ 21 ตุลาคม 2015 @ Doorknob ♦ golfed คำตอบ Ruby ของเขาจาก 44 ถึง 40 (และ 38 ต่อมา) ไบต์และเพิ่มส่วนต่อไปนี้ในคำตอบของเขาพร้อมลิงก์ไปยังความคิดเห็นดั้งเดิมของ@Optimizer : ขีดฆ่า 44 ยังเป็นปกติ 44; ( นี่คือจุดเริ่มต้นของmeme คำตอบ - การผูกมัดซึ่งทุกคนใน …

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