ผู้คนในไซต์นี้ชอบที่จะตกแต่งชื่อโพสต์ของตน ...
Stewie's sequence: + * - / + * - /
อย่างไรก็ตามเมื่อชื่อเรื่องนี้จะต้องรวมอยู่ใน URL ของหน้ามันจะง่ายขึ้น:
stewies-sequence
ความท้าทาย
งานของคุณคือการสร้างโปรแกรมหรือฟังก์ชั่นที่ให้สตริงที่เป็นตัวแทนของชื่อโพสต์เอาท์พุท / ส่งกลับการแปลง "เป็นมิตรกับ URL"
อัลกอริทึมคือ:
- แปลงเป็นตัวพิมพ์เล็ก (ถ้ามี)
- แทนที่ทุกช่องว่าง (
), จุด (
.
), เครื่องหมายจุลภาค (,
) หรือเครื่องหมายทับ (/
) ด้วยเส้นประ (-
) - ลบอักขระที่ไม่ใช่ตัวอักษรและตัวเลขยกเว้นเครื่องหมายขีดกลาง
- ลดขนาดกลุ่มของเครื่องหมายขีดคั่นที่อยู่ติดกัน (
a---b -> a-b
) ลบสิ่งที่นำหน้า / ต่อท้าย
โปรดทราบว่าอัลกอริทึมนี้เป็นการทำให้เข้าใจง่ายและอาจไม่ให้ผลลัพธ์ที่เหมือนกันกับวิธีการที่แท้จริงของเว็บไซต์
กฎระเบียบ
- คุณสามารถสันนิษฐานได้ว่าการป้อนข้อมูล:
- จะไม่ว่างเปล่า
- จะมีตัวอักษรและตัวเลขอย่างน้อยหนึ่งตัว
- จะประกอบด้วยอักขระในช่วง ASCII 32-126 เท่านั้น (สามารถพิมพ์ได้)
- อนุญาตให้ใช้โปรแกรมหรือฟังก์ชั่นแบบเต็ม
- บิวด์อินที่ไม่อนุญาตให้ใช้ข้อกำหนดคุณสมบัติที่แน่นอน
- นี่คือโค้ดกอล์ฟดังนั้นทางออกที่สั้นที่สุด (เป็นไบต์) ชนะ!
กรณีทดสอบ
โพสต์ส่วนใหญ่ในเว็บไซต์นี้จะทำหน้าที่เป็นแบบทดสอบ แต่นี่เป็นรายการที่มีประโยชน์:
Loading... Forever -> loading-forever
N(e(s(t))) a string -> nest-a-string
"Hello, World!" -> hello-world
URL-Friendly titles -> url-friendly-titles
C.U.S.R.S -> c-u-s-r-s
1+2+3+4+...+n = -1/12? -> 1234-n-1-12
How can I use cmp(a,b) -> how-can-i-use-cmpa-b
บางคนอีกต่อไป ...
Export The $PATH Variable, Line-By-Line -> export-the-path-variable-line-by-line
Do n and n^3 have the same set of digits? -> do-n-and-n3-have-the-same-set-of-digits
Quine Anagrams! (Cops' Thread) -> quine-anagrams-cops-thread
The Golfer Adventure - Chapter 1 -> the-golfer-adventure-chapter-1
Bootloader golf: Brainf*** -> bootloader-golf-brainf
และตัวอย่างการตรวจสอบกรณีขอบ (อย่าลังเลที่จะแนะนำเพิ่มเติม):
0123 -> 0123
a a1 -> a-a1
2-1=1 -> 2-11
if(isalphanum(ch))...
_
ขีดล่าง? รหัสของฉันทำงานได้ยกเว้นเมื่อมีขีดล่าง
-
ล่ะ? พวกเขาจะต้องถูกลบออก? ยกตัวอย่างเช่นในasdf-
คนสุดท้าย-
จะต้องถูกลบออก?