স্পেনীয় অপূর্ণতা / কনজুগুয়েজ ইন এল ইম্পেরেক্টো ডি ইন্ডিকটিভোর সাথে সংযুক্তি


13

একটি স্পেনীয় ক্রিয়াটির তার ইনফিনিটিভ ফর্মের একটি ইনপুট দেওয়া হয়েছে, ক্রিয়াটি নির্দেশক অসম্পূর্ণতার সমস্ত 6 রূপে সংযুক্ত হয়ে আউটপুট দেয়।

অসম্পূর্ণ ক্ষেত্রে কোনও অসম্পূর্ণ সংশ্লেষ করতে, ইনফিনিটিভ এন্ডিং (-ar, -er, -ir, এবং কখনও কখনও -ír) অপসারণ করুন এবং নীচে তালিকাভুক্ত অসম্পূর্ণ পরিণতি যুক্ত করুন। অপূর্ণটিতে তিনটি অনিয়মিত ক্রিয়া রয়েছে, যা নীচেও তালিকাবদ্ধ রয়েছে।

Verb ending    Replace with...
--------------------------------------------------------
-ar            -aba, -abas, -aba, -ábamos, -abais, -aban
-er, -ir, -ír  -ía,  -ías,  -ía,  -íamos,  -íais,  -ían
Irreg. verb    Conjugations
--------------------------------------------------------
ser            era,  eras,  era,  éramos,  erais,  eran
ver            veía, veías, veía, veíamos, veíais, veían
ir             iba,  ibas,  iba,  íbamos,  ibais,  iban

এই চ্যালেঞ্জের উদ্দেশ্যে, উচ্চারণযুক্ত অক্ষরের পরিবর্তে মূল অক্ষর ব্যবহার করুন (A এ হয়ে যায়, é ই হয়ে যায়, এবং আমি হয়ে যায়)। এটি কেবলমাত্র কারণ যে উচ্চারণযুক্ত অক্ষরগুলি ইউটিএফ -8 এ 2 বাইট হয়, তবে এগুলি অন্য এনকোডিংগুলিতে আলাদা হতে পারে এবং এর পরিবর্তে আমাকে কোনওটির সাথে ডিল করতে হবে না এবং পরিবর্তে প্রিন্টযোগ্য এএসসিআইআইয়ের মধ্যে থাকতে হবে না।

Infinitive ক্রিয়া সবসময় ক্রিয়া একমাত্র ব্যতিক্রম বা তিনটি অক্ষরের মধ্যে হতে হবে IR , ক্রিয়ার ব্যতিক্রম সঙ্গে প্রস্বরিত অক্ষর থাকা কখনোই করবে -ír শেষ, এবং সবসময় পারেন -ar, -er, -ir, এর মধ্যে সমাপ্ত হবে বা -ír রিফ্লেসিভ ক্রিয়াগুলি পরিচালনা করার দরকার নেই।

আউটপুট হ'ল হোয়াইট স্পেস- / কমা-বিচ্ছিন্ন স্ট্রিং আকারে (সুতরাং প্রতিটি লাইনে তার নিজস্ব লাইনে STDOUT এ মুদ্রণ করা ঠিক আছে) বা একটি অ্যারে / তালিকা / ইত্যাদি হতে পারে।

যেহেতু এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।

পরীক্ষার কেস:

In       Out
---------------------------------------------------------------
hablar   hablaba hablabas hablaba hablAbamos hablabais hablaban
comer    comIa comIas comIa comIamos comIais comIan
vivir    vivIa vivIas vivIa vivIamos vivIais vivIan
sonreIr  sonreIa sonreIas sonreIa sonreIamos sonreIais sonreIan
ser      era eras era Eramos erais eran
ver      veIa veIas veIa veIamos veIais veIan
ir       iba ibas iba Ibamos ibais iban


9
@ জ্যাচগেটস দেখুন, আপনি এটি বলছেন, তবে আপনি প্রাকস্রষ্ট দেখতে না পাওয়া পর্যন্ত আপনি কিছুই দেখেননি। অপূর্ণতা হ'ল স্বল্পতম ব্যতিক্রমগুলি সহকারে একটি ses
অ্যাডিসন ক্রম্প

আমি স্প্যানিশ ২-৩ নিয়েছি, হি। 0/10 @ ফ্ল্যাগএএসস্পাম
জ্যাচ গেটস

@ জ্যাচগেটস আমাকেও : সি
অ্যাডিসন ক্রম্প

উত্তর:


6

রেটিনা , 100 82 বাইট

\B[^a]r$
I
r$
b
^vI$
veI
^sI$
er
$
a
$
 $_s $_ $_mos $_is $_n
T`l`L`.(?=[^I]amos )

এটি অনলাইনে চেষ্টা করুন। দুর্ভাগ্যক্রমে, এর ব্যবহারের কারণে $_একবারে সমস্ত পরীক্ষা চালানোর জন্য কোডটি সংশোধন করা সম্ভব নয়, তাই আপনাকে পৃথক ক্রিয়াগুলিতে অনুলিপি করতে হবে। আমি একটি নতুন বৈশিষ্ট্য নিয়ে কাজ করছি যা এটি সম্ভব করবে।

ব্যাখ্যা

\B[^a]r$
I

আমরা সব শেষা w শ যা নয় বাঁক করে শুরু arমধ্যে Iপ্রদান করা, ইনপুট অনিয়মিত ক্রিয়া নয় ir। যে যত্ন নেয় -er, -ir, -írকাঠামো, আপ irregular ক্রিয়া messes serএবং ver(কিন্তু প্রক্রিয়ায় তাদের shortens), এবং পাতার শুধুমাত্র irএবং -arচিহ্ন দিয়ে প্রদর্শন r

r$
b

যদি শব্দটি এখনও শেষ হয় তবে rআমরা এটিকে একটি দ্বারা প্রতিস্থাপন করব b। আমরা এখন সমস্ত স্ট্যান্ডার্ড সংযোগের পাশাপাশি অনিয়মিত ক্রিয়াটিও coveredেকে রেখেছি ir

^vI$
veI

এটি অনিয়মিত ক্রিয়াটি ঠিক করে verযা vIপ্রথম পর্যায়ে রূপান্তরিত হয়েছে ।

^sI$
er

এটি অনিয়মিত ক্রিয়াটি ঠিক করে serযা sIপ্রথম পর্যায়ে রূপান্তরিত হয়েছে । এখন আমরা সমস্ত সম্ভাব্য কান্ডগুলি সঠিকভাবে সংশোধন করেছি। যা করা বাকি রয়েছে তা হ'ল সমস্ত সম্ভাব্য সমাপ্তি সংযোজন করা এবং তারপরে কিছু ক্ষেত্রে প্রথম ব্যক্তির বহুবচনটির জন্য উচ্চারণ ঠিক করা fix

$
a

প্রথমে আমরা aকান্ডের সাথে একটি সংযোজন করি , কারণ এটি সর্বদা সব শেষের অংশ।

$
 $_s $_ $_mos $_is $_n

এটি খুব কমই দেখা যায় $_যা পুরো স্ট্রিংটিকে প্রতিস্থাপনের মধ্যে সন্নিবেশ করায় (যা মিলছিল তা নির্বিশেষে) ব্যবহার করে। স্ট্রিংগুলি নকল করার সময় এটি আসলে খুব কার্যকর, যেমনটি রয়েছে $`এবং $'এটিও বেশ আন্ডারপ্রেসিটেড।

এই পর্যায়ের আগে, আমরা স্ট্রিংয়ে প্রথম ব্যক্তি একা পেয়েছি। স্ট্রিংয়ের শেষের সাথে মেলে $এবং প্রথম ব্যক্তির একক ক্ষেত্রে উপযুক্ত প্রত্যয় যুক্ত করে অন্যান্য ফর্মগুলি তৈরি করে আমরা এখন অন্যান্য সংযোগগুলি সংযুক্ত করি ।

T`l`L`.(?=[^I]amos )

অবশেষে, প্রযোজ্য ক্ষেত্রে আমরা প্রথম ব্যক্তির বহুবচনটির জন্য অ্যাকসেন্টটি স্থির করি। এটি কেবল একটি স্বরবর্ণের জন্য করা দরকার, দুটি অক্ষরের সামনে দুটি অক্ষর না হওয়া অবধি -amos যদি না থাকে I। সুতরাং আমরা এইরকম একটি চরিত্রের সাথে মেলে এবং তারপরে লোকে লোকে আপার ক্ষেত্রে রূপান্তর করতে একটি লিখিত লিপি লিখনের পর্যায় ব্যবহার করি। এটি নতুন চরিত্রের ক্লাসগুলির ব্যবহার করে lএবং Lযা আমি গতকাল কেবল যুক্ত করেছি। এগুলি যথাক্রমে a-zএবং A-Zযথাক্রমে প্রসারিত হয়, যাতে নতুন বৈশিষ্ট্যটি এখানে 4 বাইট সংরক্ষণ করে।


3

পাইথন 3, 154 232 বাইট

M=input()
Q={'ser':'er','ver':'veI','ir':'ib'}.get(M)
H=[(Q if Q else M[:-2]+("ab"if M[-2:]=="ar"else"I"))+j for j in"a as a amos ais an".split(' ')]
if M[-2:]=="ar":H[3]=M[:-2]+"Abamos"
if Q in['er','ib']:H[3]=H[3].title()
print(H)

অনিয়মিত ক্রিয়াগুলিতে নিখোঁজ রাজধানীগুলি স্থির করে।


Ungolfed

M=input()
Q={'ser':'er','ver':'veI','ir':'ib'}.get(M)

H=[]
for j in "a as a amos ais an".split(' '):
    if Q:
        F = Q
    else:
        if M[-2:] == "ar":
            F = M[:-2] + "ab"
        else:
            F = M[:-2] + "I"
    H += [F + j]

if M[-2:] == "ar":
    H[3] = M[:-2] + "Abamos"

if Q in ['er', 'ib']:
    H[3] = H[3].title()

print(H)

1

মিল্কিওয়ে 1.6.2 , 281 বাইট

'?{"ser"b_^"er";_}?{"ver"b_^"veI";_}?{"ir"b_^"ib";_}?{_:y2->CH=<1-&{~>;+<1-}^>;+<;_^""0}?{"ar"b_"ab";>+<0_}?{_"I";>+<_^}^;^"an ais amos a as a"" "\?{<y__<^}=3&{~<:>;>;+!^<1-}^?{'C=^"a"b_'C:y2->=^^<ΩG"Abamos"+!^^_}?{<"er"b_"Eramos"!^^_}?{<"ib"b_"Ibamos"!^^_}J:y1-;=<&{~<:>;>;+!^<1-}

ওয়েল যে অল্প সময়ের গ্রহণ! দেখে মনে হচ্ছে আমাকে কিছু বিল্টিন যুক্ত করতে হবে, হি ...


ব্যবহার

./mw <path-to-code> -i <input>

উদাহরণ

$ ./mw test.mwg -i "hablar"
hablaba
hablabas
hablaba
hablAbamos
hablabais
hablaban

$ ./mw test.mwg -i "ver"
veIa
veIas
veIa
veIamos
veIais
veIan

1

রুবি, 151 149

সাধারণত, আমি পাঠ্যতার স্বার্থে যেখানে সম্ভব সেমিকোলনের উপর একটি নতুন লাইন বেছে নেব, তবে সেমিকোলন নেই বলে এটি একটি লাইনার।

->n{%w{a as a amos ais an}.map{|z|['3r','veI','1b',n[0..-3]+(n[-2]==?a?'@b':?I)][("ser ver ir  "+n).index(n)/4].tr('31@',['eia','EIA'][z.size/4])+z}}

একটি বৈশিষ্ট্য হ'ল 31@উচ্চারণযুক্ত স্বরগুলির জন্য স্থানধারীদের ব্যবহার যা amosশেষের উপর নির্ভর করে । সুতরাং সঠিক স্টেমটি গঠিত হয় এবং তারপরে স্থানধারক যেকোন একটি হিসাবে eiaবা EIAযথাযথ হিসাবে প্রতিস্থাপিত হয়

এখানে নেতিবাচক অ্যারে সূচকগুলির কয়েকটি ব্যবহার। সুতরাং n[-2]ইনপুটটির দ্বিতীয় থেকে শেষ চরিত্রটিকে n[0..-3]বোঝায় এবং সর্বশেষ 2 টি অক্ষর মুছে ফেলা (ইনফিনিটিভ স্টেম) সহ ইনপুটটিকে বোঝায়।

পরীক্ষা প্রোগ্রামে অসম্পূর্ণ

f=->n{
%w{a as a amos ais an}.map{|z|            #iterate through each verb ending
    ['3r','veI','1b',                     #array index 0,1,2 formats for irregular stems (note numbers 1 and 3 used as placeholders)
    n[0..-3]+(n[-2]==?a?'@b':?I)][        #array index 3 format for regular stems, AR->@b or ER/IR->I depending if A found at index -2 (@ used as placeholder)
    ("ser ver ir  "+n).index(n)/4]        #find index of input verb n in "ser ver ir  "+n, divide by 4 to obtain 0,1,2,3 above
    .tr('31@',['eia','EIA'][z.size/4])+   #if z is 4 characters long (AMOS) replace 3,1,@ with uppercase E,I,A. Otherwise with lowercase e,i,a
    z                                     #add the verb ending to the stem
  }
}

n=gets.chop
puts f[n]
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.