Triển lãm
Sau khi thắng xổ số SO, bạn có thể đã đứng đầu thế giới, và bạn đã như vậy! Cuộc xổ số đã diễn ra được một năm, và bây giờ, bạn là một trong hàng trăm lập trình viên được chọn tham gia vào thành trì SO. Và cuối cùng, sự chờ đợi đã qua. Hôm nay là ngày bạn đến - [tiến hành văn bản bị xáo trộn].
Rất tiếc. Xin lỗi, không nên nói.
Nhưng dù sao, cuối cùng bạn cũng đã đến để gặp một người đàn ông có khuôn mặt khắc kỷ trong bộ đồ đen với biểu tượng SO nhỏ xíu trên đó. Anh cau mày nhìn bạn. "Những người khác đã ở trong đó," anh nói, lưu ý rằng bạn đã được xác định ở cổng. "Mau."
Bạn vội vã vào trong, một chút sợ hãi. Điều gì trên trái đất đã xảy ra? Điều gì đã sai ở SO? Bên trong, bạn quan sát 99 lập trình viên khác đang nhìn chăm chú vào màn hình của họ, đánh máy. Bạn ngồi vào chỗ còn lại và được chào đón với thông báo sau:
Xin chào, lập trình viên! Có vẻ như chúng tôi đã gặp phải một vấn đề; SO đã được thâm nhập, bởi những người chúng ta không biết. (Cá nhân, tôi nghi ngờ đó là một lập trình viên Pyth hoặc CJam, nhưng này.) Tuy nhiên, tất cả những gì đã bị tổn hại là trình soạn thảo Markdown. Chà, thực ra, đó là khá nhiều, nhưng đó là nơi bạn đến.
Tôi muốn bạn tạo một chương trình (hoặc chức năng, chúng tôi không kén chọn) sẽ diễn giải một tệp đánh dấu và chuyển đổi nó thành "SO Beautifier-Arity mới của chúng tôi Định dạng -Decomposer "(còn gọi là" SOBAD "). Bạn phải làm điều này với số lượng byte ngắn nhất - chúng tôi đang chạy ở mức thấp cho đến khi chúng tôi giải quyết vấn đề hack này. Cảm ơn thời gian của bạn, và may mắn nhất!
Trân trọng,
The Maker of Stack Overflow
Mục tiêu Đưa ra một tệp đánh dấu hợp lệ làm đầu vào cho bài nộp của bạn, thực hiện và xuất các biến đổi sau trên đầu vào:
(Khi tôi sử dụng +
ký hiệu, ý tôi là toán tử RegExp "một hoặc nhiều phiên bản của ký tự trước", không phải là dấu cộng.
- Chuyển đổi tất cả các tiêu đề cấp 1 (
# ...
hoặc...\n=+
) thành{ ... }
, với...
TẤT CẢ CAPS. - Chuyển đổi tất cả các tiêu đề cấp 2 (
## ...
hoặc...\n-+
) thành{{ ... }}
, với mỗi từ được viết hoa - Chuyển đổi tất cả các tiêu đề Cấp 3 (
### ...
) thành các mũ nhỏ; nghĩa là, tất cả các chữ cái (không phân biệt chữ hoa chữ thường) được ánh xạᴀʙᴄᴅᴇғɢʜɪᴊᴋʟᴍɴᴏᴘǫʀsᴛᴜᴠᴡxʏᴢ
theo kiểu tương ứng. - Chuyển đổi tất cả các trường hợp in đậm (
**...**
) thành...
,...
trở thành TẤT CẢ CAPS. - Chuyển đổi tất cả các trường hợp in nghiêng (
_..._
) thành. . .
, trong đó một khoảng trắng đã được chèn giữa mỗi cặp ký tự. - Chuyển đổi tất cả các trường hợp mã (
`...`
) thành< ... >
. - Chuyển đổi tất cả các trường hợp gạch ngang (
---...---
) thành-.-.-.-
, trong đó a-
đã được chèn giữa mỗi cặp ký tự. - Chuyển đổi tất cả các phiên bản danh sách được đánh số (
N. {a}\nN. {b} ...
trong đóN
khớp với biểu thức chính quy[0-9]+
) thành (1. {a}\n 2. {b}...
) - Chuyển đổi tất cả các trường hợp danh sách không theo thứ tự (
* ...\n* ...
...) thành (o ...\n o ...
...)
Thêm chi tiết
- Các tiêu đề và danh sách sẽ chỉ được tìm thấy ở đầu dòng, tuy nhiên, chúng có thể được bao quanh bởi một khoảng trắng.
- Sẽ không có trường hợp liên kết, ví dụ,
*a_*a_
là không hợp lệ cho các tiêu chuẩn của chúng tôi, cũng không phải ý muốn bất cứ điều gì giống như__a__
,*_a_*
hoặc_*a*_
xuất hiện trong một đầu vào. - Một tiêu đề đa dòng là hợp lệ khi và chỉ khi
-
hoặc=
s trực tiếp theo một dòng văn bản. - Không có tiêu đề sẽ chứa các thực thể đánh dấu khác. Ví dụ,
# `code` snippet
không phải là một đầu vào hợp lệ cho các mục đích của chúng tôi - Bạn không phải tính đến các tiêu đề cấp 4+
- Bạn không phải giữ lại các khoảng trống thừa (tức là
> 1
khoảng trắng) trong tệp, vì vậy bạn có**hello there**
thể trở thành**hello there**
nhưng không được**hellothere**
. Tương tự, không gian dấu và hàng đầu tìm thấy trên một dòng không phải được bảo tồn - Không có bảng điều khiển sẽ được tìm thấy trong đầu vào.
- KHÔNG S INST KHÔNG CÓ NGAY LẬP TỨC. Ví dụ,
***...***
sẽ không bao giờ xảy ra. - Một khoảng trắng sẽ luôn đi theo một dấu đầu dòng không có thứ tự (Ví dụ:
* ...
không*...
) - Danh sách các mục trong danh sách có thứ tự và không có thứ tự sẽ luôn bao gồm một dòng duy nhất.
- Các cặp nhân vật chưa từng có nên được bỏ qua. Ví dụ,
** cool
và`java::def
nên giữ nguyên.
Phương thức nhập liệu
Đầu vào phải là một trong những điều sau đây:
- Một mảng / tuple / list / vv. của chuỗi.
- HOẶC một chuỗi chứa dòng mới đến các dòng riêng biệt.
Sử dụng ngôn ngữ của bạn gần nhất với các loại dữ liệu đã nói ở trên nếu ngôn ngữ của bạn không hỗ trợ chúng. (Ví dụ: TI-BASIC không hỗ trợ (1.) Không phải TI-BASIC có thể cạnh tranh, dù sao đi nữa: P).
Các trường hợp thử nghiệm
Một }
dấu hiệu đầu vào, và dòng tiếp theo biểu thị đầu ra. Nhiều }
s biểu thị các dòng văn bản được phân tách bằng dòng mới.
} Hello!
Hello!
} That _2 + 2 = 5_ challenge sure was **intense!**
That 2 + 2 = 5 challenge sure was INTENSE!
// note that there are spaces also padding it
} It's `s/a/e/g` **not** `sudo g/a/e/s`, stupid.
It's < s/a/e/g > NOT < sudo g/a/e/s >
} **WHAT!** He did _WHAT?!_
WHAT! He did W H A T ? !
} _WHAT_ is undefined, here!
W H A T is undefined, here!
} OI)(EJDSFIJK L:JP #@*REF&WDS F*(D+S +&(SDFWEF )DSF _DSF_F #R#
OI)(EJDSFIJK L:JP #@*REF&WDS F*(D+S +&(SDFWEF )DSF D S F F #R#
} # So, you wanna be a programmer, eh?
} ## Step 1: learn recursion
} ### Learning recursion requires learning recursion
} **Programming** is a futile task. _Leave w h i l e you still can!_
{SO YOU WANNA BE A PROGRAMMER, EH?}
{{Step 1: Learn Recursion}}
ʟᴇᴀʀɴɪɴɢ ʀᴇᴄᴜʀsɪᴏɴ ʀᴇǫᴜɪʀᴇs ʟᴇᴀʀɴɪɴɢ ʀᴇᴄᴜʀsɪᴏɴ
PROGRAMMING is a futile task. L e a v e w h i l e y o u s t i l l c a n ! // trailing space not required
} Haha, you're a _Java_ golfer? You'd be better of with brainf***.
Haha, you're a J a v a golfer? You'd be better of with brainf***. // less than four asterisks, do nothing
} # Reasons why NOT to use C--:
} 1. It doesn't exist.
} 2. I don't care.
{REASONS WHY NOT TO USE C--:}
1. It doesn't exist.
2. I don't care.
} 1. This is a test!
} 1. <-- And this actually works in Markdown.
1. This is a test!
2. <-- And this actually works in Markdown. // less than three -s, ignore
} * no.
} * NOOO.
} * fine.
o no.
o NOOO.
o fine.
} Python, ---34--- 3 bytes.
Python, -3-4- 3 bytes.
} ---Long line of crossed text.---
-L-o-n-g- -l-i-n-e- -o-f- -c-r-o-s-s-e-d- -t-e-x-t-.-
} ** cool!
** cool! // is not a bullet point, because a space doesn't follow the *; Isn't bold, because there is no matching **
-- end of test cases --
Tặng kem
- -19 byte nếu bạn hỗ trợ thoát ký tự (để chúng được coi là "bình thường"); bạn có thể chọn bất kỳ ký tự thoát nào, nhưng tôi đề nghị
\
hoặc^
. Lưu ý rằng hệ thống thoát trên các trang web SO khác với những gì tôi đang đề xuất (và phức tạp hơn), vì vậy đừng làm điều đó! SO sẽ coi`\`
như\
, nhưng tôi muốn bạn coi nhân vật thứ hai`
như một nhân vật bình thường, và thay vào đó phù hợp với nhân vật tiếp theo`
.
***word***
trở thành * * w o r d * *
sau khi bạn áp dụng chuyển đổi in nghiêng và đột nhiên chuyển đổi đậm không áp dụng. Không rõ làm thế nào để xử lý việc này.