স্বরগুলিতে একটি ছড়া এবং লুপটি পুনরাবৃত্তি করুন


15

স্বরযুক্ত ছড়া: আপেল এবং কলা

একটি traditionalতিহ্যবাহী বাচ্চাদের গান রয়েছে যা একই পাঠকে বারবার পুনরাবৃত্তি করে, প্রতিবার প্রতিটি স্বর একটি এলোমেলো স্বর দ্বারা প্রতিস্থাপিত হয় তবে বর্তমান স্তরের সর্বত্র ধ্রুব থাকে।

চ্যালেঞ্জ

উদ্দেশ্যটি হ'ল সংক্ষিপ্ততম কোডটি প্রস্তাব করা যা কোনও ইনপুট পাঠ্যে এমন রূপান্তর সম্পাদন করে।

বিধি

  1. এর মধ্যে স্বতন্ত্র স্বর থাকায় আপনাকে ছড়াটি যতবার মুদ্রণ করতে হবে।
  2. প্রতিটি মুদ্রণ অবশ্যই একটি লাইন ব্রেকের সাথে পৃথক করা উচিত (প্ল্যাটফর্ম-নির্দিষ্ট কম্বো \nএবং \rএর স্বীকৃত)।
  3. পুনরাবৃত্তির জন্য i, প্রতিটি iপাঠকে মূল পাঠ্যের স্বতন্ত্র স্বরের সাথে প্রতিস্থাপন করুন।
  4. ইনপুট পাঠ্যটি প্রিন্টযোগ্য এএসসিআইআই অক্ষরগুলির একটি অনুক্রম (ব্যাপ্তি) [32, 126]
  5. ইনপুটটিতে এমবেডড লাইন ব্রেক থাকবে না।
  6. কেবল স্বর বর্ণগুলি অবশ্যই ক্ষতিগ্রস্থ হতে হবে, অন্যান্য অবশ্যই ইনপুট হিসাবে আউটপুট হতে হবে।
  7. কেবল স্বর অক্ষরের গণনা: অনুনাসিক স্বর, যদিও স্বরগুলির মতো শোনাচ্ছে (ফরাসি "টিনটিন" এর মতো ) তবে এটি অবশ্যই একটি স্বর হিসাবে পরিচালিত হবে না।
  8. আউটপুটটির ক্ষেত্রে কেস গুরুত্বপূর্ণ, তবে অবস্থানগত (বড় হাতের অক্ষরের পরিবর্তে বড় হাতের প্রতিস্থাপন স্বর দিয়ে করা হয়)
  9. বড় হাতের স্বরগুলি তাদের ছোট হাতের aঅংশের (যেমন <=> A) থেকে আলাদা নয়
  10. ধারাবাহিক স্বরগুলি সর্বদা পৃথকভাবে বিবেচিত হয় (যেমন Boatউভয় Bootএবং উভয়ই ফলন দেয় Baat)
  11. যেহেতু চিঠিটি yস্বর বা ব্যঞ্জনাত্মক বিশেষ্যকে প্রতিনিধিত্ব করে (যেহেতু আমরা ইংরাজী বলছি), স্বর বা ব্যঞ্জনবর্ণ হিসাবে এটি পরিচালনা করার অনুমতি রয়েছে, তবে উত্তরগুলি স্পষ্টভাবে বলতে হবে যে তারা yস্বর হিসাবে কাজ করছে কি না।

উদাহরণ:

ওহে বিশ্ব

Hello world!

দেয়:

Helle werld!
Hollo world!

yস্বর হিসাবে পরিচালিত সহ মূল ফরাসি পাঠ (অনুবাদ) থেকে কিছু অংশ :

An elephant that was rambling all gently in the woods...

দেয়:

An alaphant that was ramblang all gantla an tha waads...
En elephent thet wes rembleng ell gentle en the weeds...
In iliphint thit wis rimbling ill gintli in thi wiids...
Yn ylyphynt thyt wys rymblyng yll gyntly yn thy wyyds...
On olophont thot wos romblong oll gontlo on tho woods...

শীর্ষস্থানীয় বড় হাতের স্বর সম্পর্কে আচরণটি নোট করুন: কেসটি তার সূচকে রাখা হয় (নিয়ম 8 এবং 9)।

স্বরহীন উদাহরণ

ইনপুট যাতে কোনও স্বর থাকে না, যেমন:

lgn@hst:~$ rm -rf ./* ~ /

অবশ্যই কোনও আউটপুট, বা একটি একক লাইন বিরতি তৈরি করতে হবে।

একক-স্বর ইনপুট

একক স্বরযুক্ত ইনপুট হ'ল আউটপুট।

Dad sat at a car and saw a fat bat.

দেয়:

Dad sat at a car and saw a fat bat.

এটি , তাই সবচেয়ে কম বাইকেট কোড জয় (চিরস্থায়ী পিপিসি গৌরব ছাড়া আর কিছুই নয়)!

উত্তর:


6

রেটিনা , 45 বাইট

~(K`A\EI\OU
L$`\\?(.)
./$1/i&$*\T`Vv`5*$&$L$&

এটি অনলাইন চেষ্টা করুন! yস্বর হিসাবে গণনা করে না । ব্যাখ্যা:

K`A\EI\OU

আক্ষরিক স্ট্রিংয়ের সাহায্যে পাঠ্যটি প্রতিস্থাপন করে A\EI\OU

L$`\\?(.)

ব্যাকস্ল্যাশ এর আগে প্রতিটি অক্ষরের সাথে বৈকল্পিক মিল রয়েছে।

./$1/i&$*\T`Vv`5*$&$L$&

প্রতিটি অক্ষরের জন্য রেটিনা কোডের একটি লাইন আউটপুট দেয়।

~(

আসল ইনপুটটি ব্যবহার করে উত্পন্ন কোডটি (নীচে দেখানো হয়েছে) মূল্যায়ন করে। .আউটপুট না (চূড়ান্ত) বাফার কোড ঘটায়। /<vowel>/i&শুধুমাত্র চালানোর জন্য যদি ইনপুট দেওয়া স্বরবর্ণ (কেস-insensitively) রয়েছে লাইন বাকি ঘটায়। *কারণ লাইনের ফলে উপেক্ষা করা যাতে পরবর্তী স্বরবর্ণ পরীক্ষা করা সম্ভব। \ফলাফলের নিজস্ব লাইনে ছাপা হবে আগে এটি উপেক্ষা করা হয় কারণ। T`Vv`AAAAAaবড় হাতের transliterates Vকরার owels AAAAAs এবং সব ছোট হাতের vথেকে owels a\Aএটি একটি পালানো যা ASCII 07 (বিইএল) বোঝায়, কিন্তু E, Oএবং oঅন্তর্নির্মিত অক্ষর শ্রেণিগুলি রয়েছে যা তাদের আক্ষরিক মানগুলি দিতে পালাতে হবে (e একটি চরিত্র শ্রেণি নয়, তবে ভাগ্যক্রমে এটি পালানোও নয়))

./A/i&*\T`Vv`AAAAAa
./E/i&*\T`Vv`\E\E\E\E\E\e
./I/i&*\T`Vv`IIIIIi
./O/i&*\T`Vv`\O\O\O\O\O\o
./U/i&*\T`Vv`UUUUUu

এমএমএইচ, স্ব-উত্পন্নকারী কোড। আমি রেটিনা ভাল জানি না তবে এটি চিত্তাকর্ষক!
joH1

@ জোএইচ 1 আচ্ছা, আমার জন্য চিত্তাকর্ষক বিটটি এটি 60 বাইট সংরক্ষণ করেছে!
নীল


4

ব্যাশ, 96 বাইট

দুটি সম-দৈর্ঘ্যের সমাধান:

v=aeiouAEIOU;for x in `grep -o [$v]<<<$1|sed 's/./\L&&&&&\U&/'|awk !a[\\$0]++`;{ tr $v $x<<<$1;}
v=aeiouAEIOU;for x in `tr -cd $v<<<$1|sed 's/./\L&&&&&\U&\n/g'|awk !a[\\$0]++`;{ tr $v $x<<<$1;}

এটি অনলাইন চেষ্টা করুন!

কমান্ড লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় এবং STDOUT এ আউটপুট দেয়।


4

05 এ বি 1 ই (উত্তরাধিকার) , 19 বাইট

(পরোক্ষভাবে) কেভিনকে ধন্যবাদ জানাতে একটি বাইট সংরক্ষণ করে (যোগদানের পরিবর্তে লুপের ভিতরে সরাসরি মুদ্রণ করা, কেবলমাত্র উত্তরাধিকার সংস্করণে কাজ করা)।

lžMÃÙεžMDu«s5×Du«‡=

এটি অনলাইন চেষ্টা করুন!

এলিক্সির পুনর্লিখন, 20 বাইট ব্যবহার করে

lžMÃÙεžMDu«s5×Du«‡}»

এটি অনলাইন চেষ্টা করুন! (ছাড়াy) | এটি অনলাইন চেষ্টা করুন! (সঙ্গেy,žMদ্বারা প্রতিস্থাপিত হচ্ছেžO- একই উত্তরাধিকার সংস্করণের জন্য প্রযোজ্য)

কিভাবে এটা কাজ করে

lžMÃÙεžMDu«s5×Du«‡}»     Full program. Example: "Hello"
l                        Convert the input to lowercase. "Hello" –> "hello"
 žMÃ                     Keep only lowercase vowels. "hello" –> "eo"
    Ù                    Remove duplicates. "eo" –> "eo"
     ε            }      For each of the characters (example with "e"):
      žMDu«              Yield "aeiouAEIOU"
           s5×           Swap, and repeat the current char 5 times. "e" –> "eeeee"
              Du«        Duplicate, uppercase and merge. "eeeee" –> "eeeeeEEEE"
                 ‡       Transliteration. For each item in B, replace it in A with
                         the corresponding item in C.
                   »     Join on newlines.

ভাল উত্তর, আমি প্রস্তুত 21 বাইট উত্তর চেয়ে কম । আপনি ম্যাপিংয়ের পরিবর্তে লুপিং এবং মুদ্রণ করে আরও একটি বাইট গল্ফ করতে পারেন: 19 বাইট । আপনার টিআইও এর পরিবর্তে বিটিডব্লিউ yব্যবহার 6করা উচিত 5
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন সম্পাদিত, ধন্যবাদ! y-ভোভেল সংস্করণ সম্পর্কে , আমি উত্তর দেওয়ার পরে ভুল করে টিআইও লিঙ্কটি অনুলিপি করে অনুলিপি করেছিলাম: | ...
মিঃ এক্সকোডার

আহ, এখন আমি আবার জানি কেন iআমার কোডটি আমার কাছে ছিল .. আপনার উত্তর স্বর ছাড়া ইনপুটগুলির জন্য ব্যর্থ। প্রত্যাশিত একটি খালি আউটপুট, তবে এটি আসলে ইনপুটটি নিজেই মুদ্রণ করে .. :(
কেভিন ক্রুইজসেন

1
@ কেভিন ক্রুইজসেন 20-বাইটার কাজ করে, তাই আমি পিছন ফিরে আবার দ্বিতীয় লিঙ্কটি ঠিক করেছি।
মিঃ এক্সকোডার

4

জাপট ভি 2.0a0 -R, 24 22 বাইট

yস্বর হিসাবে আচরণ করে । একে ব্যঞ্জনবর্ণ হিসাবে বিবেচনা \yকরার \vজন্য উভয় ঘটনাকেই পরিবর্তন করুন ।

v f\y â £r\y_Xc^H*ZøZu

চেষ্টা করে দেখুন


ব্যাখ্যা

v                          :Lowercase
   \y                      :RegEx /[aeiouy]/gi (\v is /[aeiou]/gi)
  f                        :Get all matches as an array
      â                    :Deduplicate
        £                  :Map each X
         r\y               :  Replace all matches of the RegEx above in the input
             _             :  Pass matches through a function as Z
              Xc^          :    XOR the character code of X with
                 H*        :     32 multiplied by
                   Zø      :     Does Z contain
                     Zu    :      Uppercase Z
                           :Implicitly join with newlines and output

3

জেলি ,  23 20 18  17 বাইট

-২ এরিক দ্য আউটগোল্ফারকে ধন্যবাদ

ØcŒHZx5fƇðØc,yð€Y

yস্বর হিসাবে চিকিত্সা করতে উভয় cগুলি এর সাথে প্রতিস্থাপন করুন y

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

ØcŒHZx5fƇðØc,yð€Y - Link: list of characters, S
Øc                - vowels -> "AEIOUaeiou"
  ŒH              - split in half -> ["AEIOU", "aeiou"]
    Z             - transpose -> ["Aa", "Ee", "Ii", "Oo", "Uu"]
     x5           - times 5 -> ["AAAAAaaaaa", "EEEEEeeeee", "IIIIIiiiii", "OOOOOooooo", "UUUUUuuuuu"]
        Ƈ         - filter keep if:
       f          -   filter keep only -> those of X which have required vowels
                  -                       ...i.e. if S = "blah" then ["AAAAAaaaaa"]
         ð    ð€  - dyadic chain for €ach:
          Øc      -   vowels -> "AEIOUaeiou"
            ,     -   pair       e.g. ["AEIOUaeiou","AAAAAaaaaa"]
             y    -   translate  e.g. swap A for A, E for A, ...
                Y - join with newlines

18 বাইট (তুচ্ছ) ( ż/একটি জোড়ায় Z, একটি সারিতে দুটি ডায়াড যেখানে একটি বাম দিকের একটি মনডে সংশোধন করা হয়নি তার মধ্যে অন্তর্নিহিত যুক্তি রয়েছে)
এরিক দ্য আউটগল্ফার

ধন্যবাদ ( Z> _ <), আমার টিআইও অধিবেশনটি দিয়ে কী চলছে তা নিশ্চিত নন, তবে অতিরিক্ত ðকাজ সরিয়ে ফেলা কাজ করছে না; পুনরায় চালু স্থির।
জোনাথন অ্যালান

Tbh, আমি আসলে নির্দিষ্ট x€xখুব, কিন্তু আপনি আমাকে ninja'd। : পি
এরিক আউটগল্ফার

3

লাল , 229 বাইট

yএকটি স্বর-স্বর জন্য গ্রহণ

func[s][v: charset"aoeiu"w: charset"AOEIU"p: copy""parse s[any[[copy c[v | w](if not find p c[append p c lowercase c
parse s[any[[copy n to[v | w | end]](prin n)opt[v(prin c)|[w(prin uppercase copy c)]| skip]]]print""])]| skip]]]

এটি অনলাইন চেষ্টা করুন!

সামান্য আরও পঠনযোগ্য:

f: func [ s ] [
    v: charset "aoeiu"
    w: charset "AOEIU"
    p: copy ""
    parse s[ 
        any [
            [ copy c [ v | w ]
                ( if not find p c [ 
                    append p c
                    lowercase c
                    parse s [
                        any [
                            [ copy n to [ v | w | end ] ]
                                 ( prin n )
                            opt [ v ( prin c )
                                | [ w ( prin uppercase copy c ) ]
                                | skip
                                ]
                            ] 
                        ]
                    print ""
                ] )
            ]
            | skip
        ]
    ]
]


2

পাইথন, 129 119 112 বাইট

import re
f=lambda s:'\n'.join(r('[AEIOU]',v.upper(),r('[aeiou]',v,s))for v in'aeiou'if v in s.lower());r=re.sub

অনলাইনে চেষ্টা করে দেখুন!

Y

@ মিঃ এক্সকোডারকে -7 বাইট ধন্যবাদ thanks


আপনি এটি কাজ করতে পারে দেখে খুশি এবং কিছুটা গল্ফ হয়ে গেল! দুর্দান্ত কাজ
joH1


2

জাভাস্ক্রিপ্ট (নোড.জেএস) , 99 বাইট

Y

s=>(g=F=>Buffer(s).map(c=>2130466>>c&c>64?F(c):c)+`
`)(v=>g[v&=31]||(g[v]=S+=g(c=>c&96|v)),S='')&&S

এটি অনলাইন চেষ্টা করুন!

মন্তব্য

s => (                   // s = input string
  g = F =>               // g = helper function taking a callback function F
    Buffer(s)            // turn s into a Buffer
    .map(c =>            // for each ASCII code c in s:
      2130466            //   2130466 is a vowel bitmask: 1000001000001000100010
                         //                               u     o     i   e   a
      >> c               //   the ECMAScript specification enforces that the shiftCount is
                         //   the result of masking out all but the least significant 5 bits
      & c > 64           //   also make sure to ignore non-letter characters
      ?                  //   if a vowel is identified:
        F(c)             //     invoke F with c
      :                  //   else:
        c                //     just yield c
    ) + `\n`             // end of map(); coerce back to a string and append a newline
  )(v =>                 // invoke g with a callback that takes v:
    g[v &= 31] || (      //   unless this vowel has already been encountered:
      g[v] =             //     mark it as encountered
      S +=               //     and append to the output string S
      g(                 //     the result of another call to g:
        c => c & 96 | v  //       where vowels are replaced with v, using the original case
      )                  //     end of inner call to g
    ),                   //
    S = ''               //   start with S = ''
  ) && S                 // end of outer call to g; return S

2

জাভা 10, 196 188 বাইট

s->{var d=new int[99];for(var c:s.toUpperCase().replaceAll("[^AEIOU]","").toCharArray())if(d[c]++<1)System.out.println(s.replaceAll("[AEIOU]",c+"").replaceAll("[aeiou]",(char)(c+32)+""));}

-8 বাইটস @ joH1 ধন্যবাদ

yবাইট সংরক্ষণ করার জন্য স্বর ছাড়া ।

এটি অনলাইনে চেষ্টা করুন।

ব্যাখ্যা:

s->{                       // Method with String parameter and no return-type
  var d=new int[99];       //  Integer-array indicating which vowels we've already output
  for(var c:s.toUpperCase()//  Convert the input to uppercase
            .replaceAll("[^AEIOU]","")
                           //  Remove all non-vowels
            .toCharArray())//  Convert it to a character array)
                           //  And loop over those vowel-characters
    if(d[c]++              //   Increase the vowel-count by 1
             <1)           //   And if it was 0 this iteration:
      System.out.println(  //    Print with trailing newline:
        s                  //     The input,
         .replaceAll("[AEIOU]",c+"")
                           //     with every uppercase vowel replace with the current vowel
         .replaceAll("[aeiou]",(char)(c+32)+""));}
                           //     and every lowercase vowel replaced as well

vলুপের মধ্যে
চলকটি ইনলাইন

@ জোএইচ 1 ধন্যবাদ, আমি কীভাবে এটি মিস করেছি তা নিশ্চিত নই ..
কেভিন ক্রুইজসেন



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