Chìm Bismark! (Errr, lợn)


8

Pig-latin là một ngôn ngữ tạo thành được dịch sang bằng cách di chuyển chữ cái đầu tiên của từ này đến cuối và thêm ayvào cuối. Ví dụ: hellodịch sang tiếng lợn-Latin như ellohay. Do đó, dịch lợn-latin lại sang tiếng Anh được thả ayở cuối và di chuyển bức thư cuối cùng để bắt đầu (như oodbyegayđể goodbye). Khi viết nó ra, một số người sẽ đặt một -chữ cuối cùng trước khi di chuyển chữ cái đầu tiên cho rõ ràng, vì vậy nó đọc (ví dụ) ello-haythay vì ellohaycho hello. Chúng tôi sẽ sử dụng phiên bản gạch nối này cho thử thách này.

Mục tiêu

Hoàn tác một chuỗi lợn-Latin.

Hướng dẫn

Viết một chương trình / hàm mang theo một lập luận, một đơn từ trong hình thức của một chuỗi. Nếu từ đó ở dạng pig-latin, chương trình / hàm phải xuất ra (tức là returnhoặc in nó) từ không phải pig-latin. Nếu nó không phải là tiếng lợn-Latin, hãy xuất từ ​​nguyên trạng.

Pig-latin cho thử thách này sẽ có định dạng sau:

ello-hay

Nếu từ kết thúc -*ay, đó là pig-latin, trong đó *là một ký tự đại diện duy nhất.

Các ký tự không phải chữ cái nên được coi là một chữ cái bình thường. Đối với nhiều dấu gạch ngang, bỏ qua tất cả ngoại trừ cuối cùng.

Ví dụ

Sử dụng unpig()chức năng Python hư cấu để demo.

unpig("ello-hay")    #=> hello
unpig("hello-world") #=> hello-world
unpig("hello")       #=> hello
unpig("pple-aay")    #=> apple
unpig("apple")       #=> apple
unpig("ig-Stay")     #=> ig-Stay (+1 to ETHproductions for noticing.)
unpig("ello----hay") #=> hello---
unpig("la$s-gay")    #=> gla$s
unpig("ig-pay-yay")  #=> yig-pay

Quy tắc

  1. Áp dụng sơ hở tiêu chuẩn
  2. Đây là , vì vậy mã ngắn nhất sẽ thắng.
  3. Các chức năng tích hợp (cụ thể cho mục đích này) không được phép.
  4. Sử dụng tiêu đề # Language, XX bytes

Bảng xếp hạng

Câu trả lời:


5

JavaScript (ES6), 34 byte

s=>s.replace(/(.*)-(.)ay$/,'$2$1')

Các trường hợp thử nghiệm


Đây có phải là một chức năng? Tôi không làm JS (ES6).
juniorRubyist

Tôi thực sự có cùng một giải pháp, ngoại trừ sử dụng dấu ngoặc kép thay vì dấu ngoặc đơn
ETHproductions

Nvm. Khởi đầu tuyệt vời!
juniorRubyist

@juniorRubyist Đây là một hàm ẩn danh có thể được gán cho bất kỳ biến nào (trong trường hợp này là 'unpig').
chính thức tuyên bố

Có vẻ khá bất bại.
Steve Bennett



2

Python 2.7, 68 55 52 byte

def up(s):print(s,s[-3]+s[:-4])[s[-4]+s[-2:]=="-ay"]

Sử dụng một toán tử giống như ternary.

-13 byte nhờ chính thức và cập nhật các quy tắc.

-3 Thay đổi toán tử ternary. Xem https://stackoverflow.com/a/470376/3210045 .


1
s[0:len(s)-4]có thể được thay thế bằng chỉ s[:-4]. Và một vài khoảng trống có thể tránh được bằng cách siết chặt ]if"else
chính thức tuyên bố


0

Japt , 18 byte

Cũng giống như thay thế RegEx như mọi người khác, lần đầu tiên được đăng bởi Arnauld

r"(.*)-(.)ay""$2$1

Kiểm tra nó


Tôi đã có q$/-(.)ay/$ w q15 nhưng không may là thất bại ở các đầu vào có chứa nhiều bản sao -<char>ay(nó sửa tất cả chúng thay vì chỉ là bản cuối cùng). Ôi
chà


0

Perl 6 , 22 byte

{S/(.+)\-(.)ay$/$1$0/}

Giải pháp biểu thức chính quy cơ bản.



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.