Giới thiệu
Trong thử thách này, nhiệm vụ của bạn là liệt kê chính xác các trường hợp của hai danh từ Phần Lan. Vấn đề là bạn có thể sử dụng một trong các danh sách làm hướng dẫn để tạo danh sách khác.
Danh từ
Chúng tôi sử dụng hai bảng từ chối sau đây làm dữ liệu của chúng tôi. Họ liệt kê các trường hợp của hai danh từ, một trường hợp trên mỗi dòng theo thứ tự như trong bài viết Wikipedia được liên kết ở trên, dưới dạng số ít: số nhiều khi áp dụng.
Bảng 1: Các trường hợp ovi ("cửa")
ovi : ovet
oven : ovien
oven : ovet
ovea : ovia
ovessa : ovissa
ovesta : ovista
oveen : oviin
ovella : ovilla
ovelta : ovilta
ovelle : oville
ovena : ovina
oveksi : oviksi
ovin
ovetta : ovitta
ovine
Bảng 2: Các trường hợp của jalka ("chân")
jalka : jalat
jalan : jalkojen
jalan : jalat
jalkaa : jalkoja
jalassa : jaloissa
jalasta : jaloista
jalkaan : jalkoihin
jalalla : jaloilla
jalalta : jaloilta
jalalle : jaloille
jalkana : jalkoina
jalaksi : jaloiksi
jaloin
jalatta : jaloitta
jalkoine
Nhiệm vụ
Nhiệm vụ của bạn là viết hai chương trình f
và g
(có thể với các tên khác nhau) lấy một chuỗi làm đầu vào, đưa ra một chuỗi làm đầu ra và có thuộc tính sau. Nếu Bảng 1 được đưa vào f
làm đầu vào, nó sẽ xuất Bảng 2 và nếu Bảng 2 được đưa ra g
, nó sẽ xuất Bảng 1. Tất cả các đầu vào khác dẫn đến hành vi không xác định. Các bảng phải xuất hiện chính xác như trên trong cả đầu vào và đầu ra. Bạn có thể tùy ý giả định rằng có một dòng mới, nhưng sau đó nó phải được sử dụng trong cả hai bảng và trong cả đầu vào và đầu ra. Không có dòng mới trước.
Quy tắc và tiền thưởng
Bạn có thể viết f
và g
là một trong hai chức năng hoặc chương trình đầy đủ, nhưng chúng phải cùng loại và chúng phải hoàn toàn tách biệt (nếu bạn viết một hàm trợ giúp cho f
, bạn phải viết lại g
nếu bạn muốn sử dụng nó ở đó) . Tổng số byte chiến thắng thấp nhất và các sơ hở tiêu chuẩn không được phép.
Có phần thưởng -25% cho việc không sử dụng biểu thức thông thường.
Một số làm rõ
Hoàn toàn ổn khi viết một hàm / chương trình f
bỏ qua đầu vào của nó và luôn trả về Bảng 2, và một hàm / chương trình g
luôn trả về Bảng 1. Chỉ yêu cầu điều đó và ; hành vi của và trên tất cả các đầu vào khác là không liên quan.f(Table 1) == Table 2
g(Table 2) == Table 1
f
g
Phần "hoàn toàn riêng biệt" có nghĩa như sau. Câu trả lời của bạn cung cấp hai đoạn mã, một cho f
và một cho g
, tốt nhất là trong các hộp mã khác nhau. Nếu tôi đặt mã cho f
một tệp và chạy nó, nó sẽ hoạt động và tương tự cho g
. Điểm của bạn là tổng số byte của hai đoạn mã. Bất kỳ mã trùng lặp được tính hai lần.
f
làm đầu vào"
if Table 1 is given `f` as input
Làm thế nào để một đầu vào một chức năng vào một bảng? Tôi không hiểu phần này