Các thách thức
Tôi đã đọc Hướng dẫn về Phong cách Java của Google vào một ngày khác và tình cờ tìm thấy thuật toán của họ để chuyển đổi bất kỳ chuỗi tùy ý nào thành ký hiệu camelCase. Trong thử thách này, bạn phải thực hiện thuật toán này vì bạn không muốn thực hiện tất cả những thứ này trong đầu khi bạn đang viết các bài nộp Java siêu cạnh tranh của mình cho các thử thách chơi gôn.
Lưu ý: Tôi đã thực hiện một số điều chỉnh nhỏ cho thuật toán. Bạn cần sử dụng một trong những chỉ định dưới đây.
Thuật toán
Bạn bắt đầu với một chuỗi đầu vào tùy ý và áp dụng các thao tác sau cho chuỗi đó:
- Xóa tất cả các dấu nháy đơn
`'
- Chia kết quả thành các từ bằng cách chia tại
- các ký tự không phải là chữ số và không phải là một chữ số
[^a-zA-Z0-9]
- Các chữ cái in hoa được bao quanh bởi các chữ cái viết thường ở cả hai bên.
abcDefGhI jk
ví dụ sản lượngabc Def Ghi jk
- các ký tự không phải là chữ số và không phải là một chữ số
- Chữ thường mỗi chữ.
- Viết hoa ký tự đầu tiên của mọi từ trừ từ đầu tiên.
- Tham gia tất cả các từ trở lại với nhau.
Ghi chú bổ sung
- Đầu vào sẽ chỉ chứa ASCII có thể in được.
- Nếu một chữ số là chữ cái đầu tiên trong một từ, hãy để nguyên như vậy và đừng viết hoa một từ khác trong từ này.
- Đầu vào sẽ luôn có ít nhất một ký tự.
Quy tắc
- Chức năng hoặc chương trình đầy đủ cho phép.
- Quy tắc mặc định cho đầu vào / đầu ra.
- Tiêu chuẩn áp dụng.
- Đây là môn đánh gôn , vì vậy, số byte thấp nhất sẽ thắng. Tiebreaker là trình trước đó.
Các trường hợp thử nghiệm
"Câu đố lập trình & Golf Code" -> "lập trìnhPu phunCodeGolf" "Yêu cầu HTTP XML" -> "xmlHttpRequest" "hỗ trợ IPv6 trên iOS?" -> "hỗ trợIpv6OnIos" "Một số bài hát w1th, apo'strophe's và 'punc]" -> "someT BreathW1thApostrophesAndPuncTinating" "không có gì đặc biệt" -> "không có gì đặc biệt" "5pecial ca5e" -> "5pecialCa5e" "1337" -> "1337" "1337-spEAk" -> "1337Speak" "whatA mess" -> "whataMess" "abcD" -> "abcd" "a" -> "a" "B" -> "b"
Chúc mừng mã hóa!
snake_case
&PascalCase
snake_case
vì Python, tất nhiên. FORTH cũng có FORTHCASE
và APL cóunreadable in any case
ApostropheS
trong đầu ra.