Sân golf mini 9 lỗ: Mô tả
- 9 (hầu hết khá dễ) các thử thách chơi gôn với độ khó khác nhau
- Hình phạt cho việc sử dụng cùng một ngôn ngữ nhiều lần
- Tất cả các thách thức về một chủ đề cụ thể (chủ đề này: Thao tác văn bản)
- Đầu vào và đầu ra có thể ở bất cứ đâu hợp lý (ví dụ STDIN và STDOUT, đọc từ / ghi vào tệp, đối số hàm và giá trị trả về, v.v.) nhưng KHÔNG được mã hóa vào chương trình
- Lấy cảm hứng mạnh mẽ từ Thử thách 9 lỗ và Cơ chế văn bản
Lỗ
Mã túi golf
Lấy hai chuỗi làm đầu vào.
Xuất số ký tự của chuỗi thứ nhất, trong khi bỏ qua mọi sự xuất hiện của bất kỳ ký tự nào trong chuỗi thứ hai.
Ví dụ:f("foobarbaz", "ao")
=>5
Một văn bản trước cho golf
Lấy hai chuỗi làm đầu vào.
Xuất chuỗi đầu tiên, với mỗi dòng có tiền tố thứ hai.
Ví dụ:f("foo\nbar\nbaz", "a")
=>"a foo\na bar\na baz"
Cuộc chiến giữa các tab và không gian
Lấy một chuỗis
, một sốn
và một booleanb
(được chỉ định theo cách bạn muốn) làm đầu vào.
Nếub
là đúng, đầu ras
với mỗi tab được chuyển đổi thànhn
dấu cách.
Khác, xuất ras
với mọin
không gian được chuyển đổi thành các tab.
Ví dụ:f("if (x) {\n\tdoStuff();\n}", 4, true)
=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"
([sp]
có nghĩa là không gian)Trụ cột của golf
Lấy một chuỗi
s
, một sốn
và một số khácm
làm đầu vào.
Đầu ras
trong các cột củan
mỗi dòng vàm
ký tự trên mỗi cột.
Cũng có phần đệm của một khoảng trống giữa các cột.
Ví dụ:f("this is some placeholder text, foo bar baz...", 3, 5)
=>this aceho foo is so lder bar b me pl text, az...
Thư thân thiện
Lấy một chuỗis
và một sốn
làm đầu vào.
Xuất ra nhómn
chữ phổ biến nhất trongs
.
Nếu có sự ràng buộc, hãy xuất bất kỳ hoặc tất cả chúng.
Ví dụ:f("abcdeabcfghiabc", 3)
=>"abc"
Scrambled
Lấy một chuỗi làm đầu vào.trứngchữ cho bữa ăn sáng
Xuất chuỗi với tất cả các từ của nó được xáo trộn (thứ tự chữ ngẫu nhiên) ngoại trừ chữ cái đầu tiên và chữ cái cuối cùng của chúng.
Để đơn giản, giả sử rằng đầu vào sẽ là một danh sách "từ", khoảng cách được phân tách (nghĩa là trong@$&_():;" foo bar
,@$&_():;"
được coi là "từ.")
Ví dụ:f("this is a sentence that will be scrambled")
=>"tihs is a stcneene that wlil be sclamrbed"
ASCIIfy
Lấy một chuỗi làm đầu vào.
Nếu chuỗi chỉ chứa số và khoảng trắng, thì thay thế số bằng ký tự ASCII tương ứng của chúng (xóa khoảng trắng).
Khác, làm ngược lại (ký tự cho số).
Ví dụ:f("ASCIIfy challenge")
=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Ví dụ 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")
=>"ASCIIfy challenge"
Biến đổi mini-markdown
Lấy một chuỗi làm đầu vào.
Xuất chuỗi được chuyển đổi với đánh dấu nhỏ, như được sử dụng trong các nhận xét về Stack Exchange.
Đây là một thậm chí phiên bản mini-er: bạn chỉ cần để xử lý**bold**
,*italics*
và`code`
.
Bạn không cần xử lý lồng không hợp lệ, như thế nào**foo *bar** baz*
. Cũng giả sử rằng khi bạn nhìn thấy một dấu phân cách (*
hoặc`
), nó sẽ luôn có nghĩa là định dạng (tức làte**st**ing
=>te<b>st</b>ing
vàfoo* bar *baz
=>foo<i> bar </i>baz
).
Ví dụ:f("**foo** *bar **baz*** `qux`")
=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"
Chỉ những nhân vật tốt nhất
Lấy một chuỗis
, sốn
và chuỗir
làm đầu vào.
Xuấtn
ký tự thứ của mỗi từ trongs
. (0 chỉ mục, các từ được phân tách bằng dấu cách).
Nếu độ dài của từ nhỏ hơnn
,r
thay vào đó hãy sử dụng từ đó.
Ví dụ:f("this is a test sentence foo bar baz", 2, "-")
=>"i--snorz"
Chấm điểm
Điểm của bạn là tổng số ký tự của các chương trình của bạn. Đối với mỗi ngôn ngữ lặp lại, nhân với 110%. Ví dụ: nếu bạn có ba giải pháp Ruby và tổng số ký tự của tất cả các giải pháp của bạn là 1000, điểm của bạn là 1000 * 1.1 * 1.1 = 1210. Làm tròn xuống nếu bạn có điểm không nguyên.
Chúc may mắn!
_
không vấn đề gì vì tôi đã chỉ định không bao gồm nó. Tôi đã chỉnh sửa để làm rõ một số người khác.
**foo***bar**baz*
?