Trường hợp gấp tiếng Đức


9

Đưa ra một chuỗi tiếng Đức và một dấu hiệu của một trường hợp (dưới / trên / tiêu đề), gấp chuỗi cho trường hợp đó.

Thông số kỹ thuật

  1. Đầu vào sẽ chỉ bao gồm a- zcộng với äöüß-,.;:!?'"chữ hoa và / hoặc chữ thường.
  2. Trường hợp đích có thể được coi là bất kỳ ba giá trị duy nhất (vui lòng xác định chúng là gì) của một loại nhất quán; hoặc ba ký tự, hoặc ba số hoặc ba mẫu bit. (Các định dạng khác hiện không được phép ngăn chặn "thuê ngoài" câu trả lời cho đặc tả trường hợp. Nhận xét nếu bạn nghĩ rằng một định dạng bổ sung nên được cho phép.)
  3. Titlecase có nghĩa là chữ hoa tất cả mọi thứ trừ các chữ cái theo sau một chữ cái (các chữ cái là a- zcộng äöüß).

Gotchas

  1. Khi ßcần viết hoa, nó phải trở thành . Một số trường hợp được xây dựng và thư viện gấp không làm được điều này.

  2. Khi ßcần phải là Titlecase, nó phải trở thành Ss. Một số trường hợp được xây dựng và thư viện gấp không làm được điều này.

  3. sscó thể xảy ra trong văn bản và không bao giờ được chuyển đổi thành ßhoặc .

Ví dụ

Chữ hoa die Räder sagen "ßß ss" für dich, wegen des Öls!
DIE RÄDER SAGEN "ẞẞ SS" FÜR DICH, WEGEN DES ÖLS!

Chữ thường die Räder sagen "ßß ss" für dich, wegen des Öls!
die räder sagen "ßß ss" für dich, wegen des öls!

Trường hợp tiêu đề die Räder sagen "ßß ss" für dich, wegen des Öls!
Die Räder Sagen "Ssß Ss" Für Dich, Wegen Des Öls!


2
Đầu ra để làm Ssgì? Ngoài ra, đầu vào ví dụ bị thiếu ass
Rod

@Rod SS Ss ss. Bạn có thể cho tôi biết tại sao điều đó không rõ ràng?
Adám


Tôi có được phép tạo ba giá trị duy nhất cho các hàm Python không? (xem câu trả lời của tôi)
HyperNeutrino

Không, đó chính xác là những gì dự định ngăn chặn bằng cách chỉ định rằng ba giá trị duy nhất phải là ký tự, số hoặc mẫu bit.
Adám

Câu trả lời:


6

Japt , 42 40 byte

Đã lưu 2 byte nhờ @Oliver

r'ßQ=7838d)u mV,@W¦vW=X ?Xv :X¥Q?"Ss":Xu

Whew, điều đó đã mất khá nhiều nỗ lực. Đầu vào là chuỗi để chuyển đổi và một ký tự đơn: ucho chữ hoa, vchữ thường, mcho trường hợp tiêu đề.

Kiểm tra nó trực tuyến!


Bạn có cần }0?
Oliver

@Oliver Vâng, nếu không, nó sẽ ... chờ đợi, có thể không ...
Sản phẩm ETH



3

Thạch , 50 byte

⁽ñWỌ”ß;y⁸Œu
Ñ⁾SsÇ⁼?€1¦”ß
Œl
Çe€“Ġẹṇṣ‘ỌÇ;Øa¤Œg⁸ṁ⁹Ŀ€

Hãy thử trực tuyến!

Chương trình đầy đủ.

Phew, việc này mất nhiều thời gian để chơi gôn ...

Đối số 1: Chuỗi (có thể cần phải thoát)
Đối số 2: 1cho chữ hoa, 2cho trường hợp tiêu đề, 3cho chữ thường.


1

Sạch , 649 279 275 274 246 byte

Có, đó là 123 122 94 byte nhập khẩu, vốn đã dài hơn mọi câu trả lời khác.

from StdList import++,map,flatten
import StdLib,StdInt,StdBool,Text.Unicode,Text.Unicode.UChar
$ =fromInt
? =isAlpha
^ =toUpper
@0s=map^s
@1s=map toLower s
@2s=flatten(map(\[h:t]=if($223==h||h> $999)[$83,$115][^h]++ @1t)(groupBy(\a b= ?a== ?b)s))

Hãy thử trực tuyến!

Xác định hàm @, lấy một Intvà a UString, và trả về a UString.
Thuận tiện, UString(Cách xử lý Unicode mặc định của Clean), chỉ là một bí danh loại [Int]- là danh sách Intchứa các mật mã unicode của các ký tự trong chuỗi.
Vô tình , Text.Unicode.UCharthực sự dài và tôi không thể import StdEnvvì các định nghĩa StdCharmâu thuẫn với các định nghĩa trong Text.Unicode.UChar(vì chúng không có ý định sử dụng cùng nhau).

Ba giá trị là 0, 1 và 2 cho trường hợp Trên, Dưới và Tiêu đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.