Lấy cảm hứng từ điều này.
Đưa ra một chuỗi làm đầu vào chỉ bao gồm các ký tự chữ cái viết hoa và viết thường, wicka-wub nó.
Làm thế nào để tôi wicka-wub một chuỗi?
Văn bản ví dụ được sử dụng là "DJMcMayhem".
Tách chuỗi trước mỗi chữ in hoa, để bạn nhận được ["D", "J", "Mc", "Mayhem"]
.
Tiếp theo, lấy hai nửa của danh sách làm danh sách phụ. Điều này cho chúng ta [["D", "J"],["Mc", "Mayhem"]]
. Nếu danh sách có độ dài lẻ (tức là 3), danh sách con đầu tiên sẽ chứa chuỗi con giữa (nghĩa là [[a,b], [c]]
).
Tạo một danh sách wicka
s và wub
s. Số lượng wicka
s nên nhiều bằng độ dài của phần đầu tiên của danh sách đầu vào (nghĩa là ["D", "J"] -> ["wicka", "wicka"]
) và số lượng wubs
nên bằng với độ dài của phần thứ hai của danh sách đầu vào. Trong trường hợp của chúng tôi, điều này mang lại ["wicka", "wicka", "wub", "wub"]
.
Bây giờ hãy tham gia các danh sách con của danh sách đầu vào thành các chuỗi đơn và làm phẳng.
Chúng tôi hiện đang có ["DJ", "McMayhem"]
và ["wicka", "wicka", "wub", "wub"]
.
Tham gia wicka
/ wub
danh sách với -
s : wicka-wicka-wub-wub
. Chuẩn bị a -
. Nếu có nhiều chữ in hoa trong đầu vào, hãy thêm một chữ cái khác -
.
Bây giờ chúng tôi có ["DJ", "McMayhem"]
và "-wicka-wicka-wub-wub-"
.
Nối wicka-wub
chuỗi vào cuối mục đầu tiên trong danh sách đầu vào, để lấy ["DJ-wicka-wicka-wub-wub-","McMayhem"]
.
Cuối cùng, lặp lại các ký tự trong phần thứ hai của chuỗi bằng giá trị 0 được lập chỉ mục của chúng trong chuỗi đầu vào ban đầu. Trong ví dụ của chúng tôi, điều đó có nghĩa là lần đầu tiên M
sẽ được lặp lại hai lần, sau đó c
ba lần và M
bốn lần tiếp theo . Tham gia danh sách, vì vậy phần thứ hai (phần bạn vừa lặp lại các chữ cái trong) được thêm vào phần đầu tiên ( "DJ-wicka-wicka-wub-wub-"
).
Kết quả cuối cùng của đầu vào:
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Tổng số quá trình:
["D", "J", "Mc", "Mayhem"] =>
[["D", "J"], ["Mc", "Mayhem"]] =>
["DJ", "McMayhem"] and ["wicka", "wicka", "wub", "wub"] =>
["DJ", "McMayhem"] and "-wicka-wicka-wub-wub-" =>
["DJ-wicka-wicka-wub-wub-", "McMayhem"] =>
"DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm"
Nhiệm vụ của bạn
Nhiệm vụ của bạn là, được đưa ra một chuỗi chỉ bao gồm các ký tự chữ cái viết hoa và viết thường, xuất ra phiên bản wicka-wubbed của chuỗi đó.
Một vài quy tắc
- Đầu vào có thể bao gồm hoàn toàn các chữ cái viết thường hoặc hoàn toàn bằng chữ in hoa hoặc bất kỳ số nào của mỗi chữ cái, nhưng không có các ký tự khác.
- Nếu đầu vào bao gồm các chữ cái hoàn toàn viết thường, đầu ra chính xác chỉ đơn giản là giai đoạn cuối cùng (chuỗi có các ký tự được lặp lại theo vị trí được lập chỉ mục 0 của chúng). Không nên có
wicka
hoặcwub
trong trường hợp đó. - Quy tắc tiêu chuẩn áp dụng, chương trình đầy đủ hoặc chức năng, tùy thuộc vào bạn.
- Đây là một môn đánh gôn nên mã ngắn nhất sẽ thắng.
GoodLuck-wicka-wicka-wub-GGGGGGGGooooooooollllllllllfffffffffffeeeeeeeeeeerrrrrrrrrrrrrssssssssssssss
Các trường hợp thử nghiệm
input => output
DJMcMayhem => DJ-wicka-wicka-wub-wub-MMcccMMMMaaaaayyyyyyhhhhhhheeeeeeeemmmmmmmmm
PPCG => PP-wicka-wicka-wub-wub-CCGGG
foobarbaz => fooooobbbbaaaaarrrrrrbbbbbbbaaaaaaaazzzzzzzzz
FooBarBaz => FooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
HelloWorld => Hello-wicka-wub-WWWWWoooooorrrrrrrllllllllddddddddd
Test => Test-wicka
UPPER => UPP-wicka-wicka-wicka-wub-wub-EEERRRR
fooBarBaz => fooBar-wicka-wicka-wub-BBBBBBaaaaaaazzzzzzzz
5
chữ in hoa?
foobarbaz
đơn giản trở lại foobarbaz
? Có phần thứ hai nào không?