Penjelasan
Halo! Bagi Anda yang tidak menggunakan bahasa Spanyol, kata kerja dikonjugasikan berdasarkan orang yang melakukan tindakan. Berikut ini bagan:
English Spanish
I Yo
You Tú
He Él
She Ella
You (formal) Usted
We all Nosotros
You all Vosotros
They (masculine, plural) Ellos
They (feminine, plural) Ellas
You (plural) Ustedes
Di Spanyol, semua kata kerja berakhir dengan ar
, er
atau ir
. Berikut bagan bermanfaat lainnya:
Ar Er Ir
Yo o o o
Tú as es es
Él a e e
Ella a e e
Usted a e e
Nosotros amos emos imos
Vosotros áis éis ís
Ellos an en en
Ellas an en en
Ustedes an en en
Diberi kata ganti dan kata kerja, cetak kata kerja yang dikonjugasikan menggunakan kata ganti dalam present tense. Jangan khawatir tentang perubahan batang dan kata kerja yang aneh.
Contohnya
Input Output
Yo escribir Escribo
Tu enseñar Enseñas
Ella querer Quere (It should be quiere but ignore stem changes)
Jika bahasa Anda tidak mendukung pencetakan dengan aksen, Anda dapat menghilangkannya. Kalau tidak, tidak perlu lagi menggunakan karakter á alih-alih dalam kode Anda.
Anda dapat menemukan lebih banyak kata untuk diuji di sini: http://spanish.speak7.com/spanish_vocabulary_verbs.htm . Perhatikan bahwa contester haruslah contestar.
Tantangan: Perubahan Batang
Dalam bahasa Spanyol, beberapa kata kerja mengalami perubahan batang. Mari kita ambil kata kerja querer
sebagai contoh. Dalam semua bentuk kecuali nosotros dan vosotros , yang pertama e
berubah menjadi ie
. Jadi yo quiero
, tapi nosotros queremos
. Jika program Anda dapat menjelaskan perubahan batang, Anda dapat mengurangi dua kali panjang setiap kata yang Anda dukung dari skor akhir Anda. Misalnya, jika Anda mendukung i
-> ie
perubahan querer
dan hanya querer
, Anda dapat mengurangi dua kali panjang querer
, atau 12, dari skor Anda.
Untuk beberapa kata kerja yang mengubah batang, coba ini: https://conjuguemos.com/chart.php?language=spanish&id=2&etre=no&commands=no&commands=no&all=no&source=public
Bonus Kecil
Hanya untuk bersenang-senang, jika Anda menjelaskan apa yang kode Anda lakukan dalam bahasa Spanyol, lepas 30 dari skor Anda. Jangan hanya menggunakan Google Translate atau saya akan dapat mengatakan bahwa Anda curang.
(Karena saya bukan penutur asli bahasa Spanyol, mohon koreksi kesalahan saya)
sumber
Jawaban:
Python,
172168743 karakter - bonus 1796 = -1053Diperbarui untuk mengambil tantangan perubahan batang.
Penggunaan :
Tes pada input yang tidak mengubah batang :
Contoh input pengubah batang :
Ia melakukan keduanya yaitu perubahan dan perubahan, dengan benar menghindari kasus nostro + vostros:
Berikut adalah cara menentukan bonus dan string data yang dihasilkan, dari mana Anda dapat menyimpulkan kata kerja tempat kerjanya:
Pemberian yang mana:
sumber
.
s, akan menambah 50 poin atau lebih untuk skorten
dalam daftar akar Anda. teñir adalah e to i , bukan e to ie ; tener adalah e untuk yaitu , namun memiliki perubahan batang tidak teratur untuk 1s. Demikian pula abstener , circunvenir , obtener , sostener , venir , cocer , destorcer , oler , retorcer , torcer . Di sisi lain, skrip penilaian Anda sepertinya tidak menghitung sentar dansentir . Dan kau hilang.
disosegsosten
, dandescontr
mungkin harusdescont
.tener
saya kira. Saya tidak menyadari kata kerja yang Anda daftarkan memiliki kasus khusus. Saya dapat menghapusnya atau menghitungnya (mana yang lebih murah) dan memperbaiki kesalahan ketik jika ada pesaing dekat lainnyaPython, 240 byte - bonus (sangat besar)
Output sampel:
Penjelasan:
Kode ini menggunakan situs web konjugasi gratis yang ada ( http://www.conjugation.org/ ) yang mengembalikan berbagai konjugasi dari database besar kata kerja. Saya mengurangi URL sedikit dengan menggunakan pemendek URL online gratis yang memungkinkan parameter untuk melewati pengalihan ( http://smarturl.it/ ). Saya cukup membuat permintaan HTTP berdasarkan kata kerja yang ditentukan, menghapus aksen dari
u
dane
di sumber, menemukan kata ganti dalam HTML menggunakan ekspresi reguler, kemudian mengembalikan konjugasi yang terkait.Tidak mungkin untuk mengetahui berapa banyak kata kerja yang memiliki perubahan batang tanpa polling seluruh database terhadap sebuah kamus. Mungkin aman untuk mengasumsikan bonus negatif dari database ini jauh lebih besar daripada bonus dari daftar yang disandikan yang dilewati (yang menambah panjang kode).
Saya jelas bisa menangani karakter beraksen lebih baik, tapi itu akan membutuhkan encode / decode dan penanganan ekstra dalam ekspresi reguler.
sumber
re.sub
ataustring.replace
ketika tidak harus menangani perubahan batang, dll. Bahkan program Anda akan menerima skor negatif yang lebih besar jika Anda terus menambahkan kata kerja perubahan batang lebih lanjut ke daftar Anda yang disandikan. Pertanyaannya cacat.Freepascal, 218 karakter -30 = 189
Ini adalah panggilan yang sulit untuk mengalahkan jawaban python (asli), terutama dengan Pascal. Saya dapat mencoba dan meningkatkan besok, mungkin dengan konsep serupa dalam bahasa yang berbeda. Saya tidak akan mengajukan jawaban yang mengubah batang, karena saya melihat ini sebagai tantangan bahasa daripada pemrograman.
Versi tidak disatukan:
Explicación (Dalam bahasa Spanyol untuk bonus -30 sejak Anda bertanya)
el primer
copy
extrae la Raiz del Verbo, teniendo como parámetros el tali , el indice para empezar (en este caso 1) y la cantidad de letras (en este caso panjang-2. ) El segundo extrae su desinencia.6*(7-pos(p[1],' yt v n')
Lihat foto lainnya dari primera letra del pronombre. Si el pronombre es el / ella (o / s) o usted (es),pos
se mengeva sebuah Cero, Así que el keberanian dentro de los Parentesis es 7.pos(v[length(v)-1],y
busca la penultima letra del infinitivo enamosemosimos
Así que avanza 4 por cada tipo de Verbo , form unicicic de 12.y
Tambahkan ke daftar isi to to las las desinencias. Se ha logrado intercalar parcialmente las desinencias para "tu" y "yo." Semua yang Anda tahu tentang apa yang Anda butuhkan dan kemudian untuk saya untuk menghapusnya. Selain itu, Anda juga dapat menentukan bus mobil yang diinginkan.pos(p[length(p)],'u s')+1)
determina el numero de caracteres para imprimir. si el pronombre ada termina ens
ou
solo se Imprimé un caracter. De esta manera suprimimos la segunda letra dean en en
en el caso de un pronombre de tercera persona singular: él, ella, usted.Keluaran
sumber
perl, 243 karakter
Kali ini berfokus pada pencarian hash. Saya cukup terkejut saya tidak bisa mendapatkan ini lebih kecil.
Dan jika validasi input tidak penting, 186 karakter:
sumber
perl, 155 karakter
Hanya sekelompok ekspresi reguler saat ini. Anda bisa mendapatkan kode yang lebih pendek dengan menata ulang sedikit sehingga kata ganti muncul setelah kata kerja, karena kami hanya benar-benar peduli dengan akhir kata kerja:
Sepertinya di atas saat ini adalah pemenang kode yang mengabaikan bonus.
sumber
Bash,
301309 (perbaikan bug)307299 termasuk baris baruTidak hebat dibandingkan dengan yang lain di luar sana. Dapat ditingkatkan.
Itu memanfaatkan beberapa kebetulan yang nyaman.
Perbaikan bug tidak bergantung pada kata kerja Spanyol yang memiliki "ii" di mana saja, karena cara itu menghemat karakter ketika menangani vosotros dengan kata kerja -ir mereka. Harap perbaiki saya jika itu salah.
Asumsikan input yang valid: argumen pertama adalah kata ganti dengan huruf kecil, dengan aksen yang diperlukan; Argumen kedua adalah infinitive dari kata kerja. Tidak ada perubahan batang diterapkan. Menghasilkan kata kerja terkonjugasi, dalam huruf kecil, tanpa aksen.
Dijelaskan. `` adalah notasi yang tidak jelas untuk
$( )
, menyimpan satu char.dapatkan kata kerja ending
dapatkan char pertama dari kata kerja ending
dapatkan kata kerja batang
Batang kata kerja + o. $ o adalah output kami
ambil stem + huruf pertama dari ending + mos
stem + huruf pertama dari ending + adalah (tanpa aksen)
dalam semua skenario kecuali dua di atas, kata kerja -irnya berperilaku sebagai kata kerja -er. ubah $ f ke e jika i.
batang + $ f + s
jika huruf terakhir dari akhiran adalah s. ini termasuk ellos, ellas, ustedes yang semuanya memiliki akhiran yang sama. alangkah nyaman.
batang + $ f + n
kami mengasumsikan input yang valid, jadi satu-satunya kemungkinan lainnya adalah Él, Ella dan Usted, semuanya dengan akhiran yang sama
hasil cetak, menghapus i ganda (yang muncul ketika Anda menggunakan vosotros dengan kata kerja ir)
sumber
perl, 298 karakter
atau jika kita dapat berhati-hati terhadap angin dan menerima input yang valid, 246 karakter:
hasil tes:
sumber
Jawa - Terlalu Panjang
Aku bahkan tidak akan repot menghitung. Jika ada yang ingin bermain golf ini lebih baik, silakan lakukan. Saya akhirnya akan menerapkan tantangan yang mengubah batang.
sumber