স্ট্রিং ওয়েভস তৈরি করুন


19

ইনপুট হিসাবে একটি স্ট্রিং দেওয়া, নিম্নলিখিত আলগোরিদিম প্রয়োগ সঙ্গে স্ট্রিং আউটপুট:

1. Split the String by " " (find the words): "Hello World" -> ["Hello","World"]
2. Find the vowel count of each component: [2,1]   ( ["H[e]ll[o]","W[o]rld"] )
3. For each of the components, output the first n letter where n is the number 
   of vowels it contains: ["He","W"]
4. Join the list to a single string and reverse it: "HeW" -> "WeH"

চশমা

  • আপনি কোনও স্ট্যান্ডার্ড ফর্ম দ্বারা ইনপুট নিতে এবং আউটপুট সরবরাহ করতে পারেন এবং ইনপুট এবং আউটপুট উভয়ের জন্য অনুমোদিত একমাত্র ডেটা টাইপ হ'ল আপনার ভাষার নেটিভ স্ট্রিং টাইপ। স্বতন্ত্র শব্দের তালিকা হিসাবে সরাসরি ইনপুট নেওয়ার অনুমতি নেই।

  • আপনি গ্যারান্টিযুক্ত যে কোনও টানা জায়গা থাকবে না।

  • স্বরগুলি হয় "a","e","i","o","u","A","E","I","O","U"তবে স্বর হিসাবে "y","Y" বিবেচিত হয় না

  • আপনার গ্যারান্টিযুক্ত যে কেবলমাত্র অক্ষর এবং স্পেসগুলি ইনপুটটিতে উপস্থিত হবে তবে কোনও নতুন লাইন ছাড়াই।

  • আউটপুট অবশ্যই কেস-সংবেদনশীল হতে হবে

  • আপনার গ্যারান্টি নেই যে প্রতিটি শব্দের একটি স্বর রয়েছে। যদি এই শব্দটিতে কোনও স্বর না উপস্থিত হয় তবে আপনাকে এর জন্য কিছু আউটপুট দিতে হবে না।

পরীক্ষার মামলা

Input -> Output
---------------

""                                  -> ""
"Hello World"                       -> "WeH"
"Waves"                             -> "aW"
"Programming Puzzles and Code Golf" -> "GoCauPorP"
"Yay Got it"                        -> "iGY" 
"Thx for the feedback"              -> "eeftf"                  
"Go Cat Print Pad"                  -> "PPCG"   
"ICE CREAM"                         -> "RCCI"

স্কোরিং

প্রতিটি ভাষার জয়ের পক্ষে সবচেয়ে সংক্ষিপ্ত বৈধ জমা, এটি । গুড লাক এবং মজা আছে!


যারা মুছে ফেলা পোস্টগুলি দেখতে পারেন তাদের জন্য স্যান্ডবক্স


অস্থায়ী মোছার জন্য দুঃখিত!
মিঃ এক্সকডার

6
জানি না কেন আমি ভেবেছিলাম এটি স্ট্রিং ( স্ট্রিং থিওরির মতো ) তরঙ্গগুলি (কোনও ক্ষেত্রে দোলনের মতো) সম্পর্কে পিসিজি হতে চলেছে । ঘুমানোর সময় হতে পারে।
২৩7777

2
@ মিঃ এক্সকোডার: দয়া করে বড় হাতের স্বরযুক্ত একটি পরীক্ষার কেস যুক্ত করুন। ধন্যবাদ!
নিমি

পছন্দ করেছেন এটি ঠিক একই অ্যালগরিদম, কোনও ক্ষেত্রেই আসেনি।
মিঃ এক্সকোডার

1
@ মিঃ এক্সকোডার: হ্যাঁ, তবে কমপক্ষে দুটি উত্তর এটি ভুল পেয়েছে (উভয়ই এখনই স্থির)।
নিমি

উত্তর:


7

হাস্কেল, 59 বাইট

map fst.reverse.(>>=zip<*>filter(`elem`"aeiouAEIOU")).words

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

       words     -- split into a list of words
  (>>=      )    -- apply a function to every word and collect the results in a
                 -- single list
     zip<*>filter(`elem`"aeiouAEIOU")
                 -- f <*> g x = f x (g x), i.e. zip x (filter(...)x)
                 -- we now have a list of pairs of (all letters of x, vowel of x)
                 -- with the length of number of vowels
 reverse         -- reverse the list
map fst          -- drop vowels from the pairs

6

ভি , 31 বাইট

Í /ò
òÄøã[aeiou]
|DJ@"|D-òÍî
æ

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

00000000: cd20 2ff2 0af2 c4f8 e35b 6165 696f 755d  . /......[aeiou]
00000010: 0a01 7c44 4a40 227c 442d f2cd ee0a e6    ..|DJ@"|D-.....

এবং ব্যাখ্যা:

Í               " Substitute Every space
  /             " With
   ò            " Newlines
                " This puts us on the last line of the buffer
ò               " Recursively:
 Ä              "   Duplicate the current line
  ø             "   Count:
   ã            "   Case insensitive
    [aeiou]     "   The number of vowels
<C-a>           "   Increment this number
     |          "   Go to the beginning of this line
DJ              "   Delete the number of vowels, and remove a newline that was accidentally made.
                "   Also, my name! :D
  @"            "   Run the unnamed register, which is the number of vowels that we deleted
    |           "   And move to the n'th column in this line
     D          "   Delete everything on this line after the cursor, keeping the first *n* characters
      -         "   Move up a line
       ò        " End the loop
        Íî      " Remove all newlines
æ               " And reverse:
                "   (implicit) The current line

এটি আশ্চর্যজনকভাবে পঠনযোগ্য ... এটি কীভাবে কাজ করে আপনি কিছু শব্দ যুক্ত করতে পারেন?
মিঃ এক্সকডার

আমি প্রায়শই æব্যবহৃত হতে দেখে আমি মুগ্ধ , আমি মনে করি এটি খুব সম্প্রতি যুক্ত হয়েছে এবং এটি আরও কার্যকর কমান্ডগুলির মধ্যে একটি।
nmjcman101

@ nmjcman101 হ্যাঁ, আমি পুরোপুরি একমত। æহয় অত্যন্ত দরকারী। আমার এটি দীর্ঘকাল আগে যুক্ত করা উচিত ছিল। øসত্যিই দুর্দান্ত, এটি দুর্দান্ত যে এই উত্তরটি উভয়ই ব্যবহার করে।
ডিজেএমসিএমহেম

প্রথমটি |( অনলাইনে এটি ব্যবহার করে দেখুন! ) ছাড়া কাজ করা দেখে মনে হচ্ছে যা আপনার ব্যাখ্যায় নেই। তবে আমি ভি জানি না; এটা কি দরকার?
CAD97

@ CAD97 আহ, আমি আমার ব্যাখ্যায় এটি মিস করেছি। এটি সমস্ত পরীক্ষার ক্ষেত্রে কাজ করে তবে কোনও শব্দে 10 বা ততোধিক স্বর থাকলে তা ভেঙে যায় (কারণ শব্দের <C-a>শেষে কার্সারটি রেখে দেয়)। tio.run/##K/v//3Cvgv7hTVyHNx1uObzj8OLoxNTM/…
ডিজেএমসিএমহেম

5

ব্র্যাচল্যাগ , 17 বাইট

ṇ₁{{∋ḷ∈Ṿ}ᶜ}ᶻs₎ᵐc↔

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

ব্যাখ্যা

এটি সমস্যার সরাসরি অনুবাদ:

Example input: "Hello World"

ṇ₁                  Split on spaces:         ["Hello", "World"]
  {       }ᶻ        Zip each word with:      [["Hello",2],["World",1]]
   {    }ᶜ            The count of:
    ∋ḷ∈Ṿ                Chars of the words that when lowercased are in "aeiou"

            s₎ᵐ     Take the first substring of length <the count> of each word: ["He","W"]
               c    Concatenate:             "HeW"
                ↔   Reverse:                 "WeH"


4

এলিস , 32 বাইট

/.'*%-.m"Re.oK"
\iu &wN.;aoi$u@/

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

ব্যাখ্যা

/....
\...@/

এটি অর্ডিনাল (স্ট্রিং-প্রসেসিং মোড) এর লিনিয়ার কোডের জন্য কেবল একটি ফ্রেমওয়ার্ক। প্রোগ্রামটি উন্মুক্ত করে আমরা পাই:

i' %w.."aeiou".u*&-Nm;Ro.$K@

এটি যা করে তা এখানে:

i           Read all input.
' %         Split the input around spaces.
w           Push the current IP address to the return address stack to mark
            the beginning of the main loop. Each iteration will process one
            word, from the top of the stack to the bottom (i.e. in reverse 
            order).

  ..          Make two copies of the current word.
  "aeiou"     Push this string.
  .u*         Append an upper case copy to get "aeiouAEIOU".
  &-          Fold substring removal over this string. What that means is that
              we push each character "a", "e", ... in turn and execute -
              on it. That will remove all "a"s, all "e"s, etc. until all
              vowels are removed from the input word.
  N           Compute the multiset complement of this consonant-only version
              in the original word. That gives us only the vowels in the word.
              We now still have a copy of the input word and only its vowels
              on top of the stack.
  m           Truncate. This reduces both strings to the same length. In particular,
              it shortens the input word to how many vowels it contains.
  ;           Discard the vowels since we only needed their length.
  R           Reverse the prefix.
  o           Print it.
  .           Duplicate the next word. If we've processed all words, this
              will give an empty string.

$K          Jump back to the beginning of the loop if there is another word
            left on the stack.
@           Otherwise, terminate the program.

4

জাভাস্ক্রিপ্ট (ES6), 76 বাইট

s=>s.split` `.map(w=>w.split(/[aeiou]/i).map((_,i)=>o=i?w[i-1]+o:o),o='')&&o

পরীক্ষার মামলা


4

পার্ল 5, 47 বাইট

45 বাইট কোড + 2 এর জন্য -pa

map$\=$_.$\,(/./g)[0..lc=~y/aeiou//-1]for@F}{

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


এটি কি আপার কেস স্বর, যেমন "আলাবামা" দিয়ে কাজ করে?
নিমি

@ নিমি ওহো, এটি সম্পর্কে ভাবেন নি, +1 এর জন্য আপডেট হয়েছে।
ডম হেস্টিংস

3

জাভাস্ক্রিপ্ট (ES6), 96 বাইট

s=>[...s.split` `.map(w=>w.slice(0,(m=w.match(/[aeiou]/gi))&&m.length)).join``].reverse().join``


স্বরযুক্ত ( Thx) এর শব্দের কোনও আউটপুট থাকা উচিত নয়; আপনার পরীক্ষার কেস পুরো শব্দটির ফলাফল দেয়।
জাস্টিন মেরিনার

@ জাস্টিনমারিনার ফিক্সড!
darrylyeo

3

পাইথ - 19 বাইট

_jkm<dl@"aeiou"rd0c

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

ব্যাখ্যা:

_jkm<dl@"aeiou"rd0c
                  c  # Split implicit input on whitespace
   m                 # For each word d...
               rd0   # ...take the lower-case conversion...
       @"aeiou"      # filter it to only vowels...
      l              # and find the length of this string (i.e., the number of vowels in the word)
    <d               # Take the first # characters of the word (where # is the length from above)
 jk                  # Join on empty string (can't use s, because that will screw up when the input is the empty string)
_                    # Reverse the result (and implicitly print)

খালি স্ট্রিংয়ের জন্য না থাকলে আমার 18 বাইট থাকতে পারে:

_sm<dl@"aeiou"rd0c

1
@ ডিজিটালট্রামা: আমি কেবল একটি ব্যাখ্যা যুক্ত করেছি
মারিয়া

1
@- ছেদটি এখানে রেজেক্সের চেয়ে অনেক ভাল। ওহ, আমি দেখতে পেয়েছি - আমার ২ এর তুলনায় আপনার কাছে একটি লম্বা / মানচিত্র রয়েছে
ডিজিটাল ট্রমা

3

পাইথ, ৩১

এটি লিখতে আমার অনেক সময় লেগেছে, এবং আমার মনে হচ্ছে সম্ভবত আরও ভাল উপায় আছে তবে আমার যা আছে তা এখানে:

_jkm<Fd.T,cQ)ml:d"[aeiou]"1crQ0

অনলাইন পরীক্ষা

                             Q     # input
                            r 0    # to lowercase   
                           c       # split by whitespace
               :d"[aeiou]"1        # lambda: regex to find vowels in string
              l                    # lambda: count the vowels in string
             m                     # map lambda over list of words
          cQ)                      # split input by whitespace
         ,                         # list of (input words, vowel counts)
       .T                          # transpose
    <Fd                            # lambda to get first n chars of string
   m                               # map lambda over list of (input words, vowel counts)
 jk                               # join on on empty strings
_                                 # reverse

> আমার মনে হয় সম্ভবত আরও উন্নততর উপায় আছে - আমি পাইথে 19 পেয়েছিলাম
মারিয়া

1
সেখানে স্বেতলানা আমি এটি স্থির করেছি। টিপটির জন্য ধন্যবাদ jk
ডিজিটাল ট্রমা

3

ওহম, 13 বাইট

z:αv_K_σh;0JR

ব্যাখ্যা

  • প্রথমে (অন্তর্নিহিত) ইনপুটটি ফাঁকা জায়গায় বিভক্ত হয় z
  • তারপরে একটি ফোরচ লুপ শুরু হয় ( :) এর সাথে সম্পর্কিত কোডব্লক রয়েছে αv_K_σh
    • av push কর্মের aeiou
    • _ বর্তমান পুনরাবৃত্তি উপাদান ধাক্কা
    • Kএর ঘটনার বড়, মোট ছাত্র aeiouমধ্যে_
    • _ আবার উপাদান
    • σhউপাদানটিকে দৈর্ঘ্যের টুকরাগুলিতে বিভক্ত করে occurencesএবং প্রথম উপাদানটি নেয়।
      • কার্যকরভাবে এটি প্রথম occurencesঅক্ষর নেয়
  • 0J স্ট্যাকটি জোড় করে চাপ দেয় ''
    • 0প্রয়োজনীয় কারণ এটি একটি যুক্তি হল যে জড়িত হয়ে যাবে প্রয়োজন। যদি সেই যুক্তিটি অ্যারে না হয় তবে এটি স্ট্যাকের সাথে যোগ দেয়
  • R ফলাফল বিপরীত
  • টিওএসের অন্তর্নিহিত মুদ্রণ

3

রুবি , 54 59 + 1 = 55 60 বাইট

-p+1 বাইটের জন্য পতাকা ব্যবহার করে ।

$_=$_.split.map{|w|w[0,w.count("aeiouAEIOU")]}.join.reverse

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


@ নিমিমি এখন তা করে।
মান কালি

শুধু কৌতূহলী, কেন -pবাইট মূল্য?
এরিক ডুমিনিল

2
@EricDuminil দেখুন এই মেটা পোস্টে কিন্তু মূলত, কারণ ruby -pe '...'তুলনায় শুধুমাত্র আর একটি বাইট ruby -e '...'এবং -eস্ক্রিপ্ট চালানোর জন্য একটি বৈধ উপায়।
ডোম হেস্টিংস

3

জাপট ভি 2.0a0, 12 10 বাইট

¸®¯Zè\vìw

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


ব্যাখ্যা

চূড়ান্তভাবে বর্ণনাটি ঠিক কী করে!

        :Implicit input of string U.
¸       :Split to array on spaces.
®       :Map over the array, replacing each element with itself ...
¯       :  sliced from the 0th character to ...
Zè\v    :  the count (è) of vowels (\v) in the element (Z).
à      :End mapping.
¬       :Join to a string.
w       :Reverse.
        :Implicit output of result.

ভাল জিনিস আমি আমার নিজের লেখার আগে বিদ্যমান উত্তরগুলি যাচাই করেছি: পি ভাল এক, আমি মনে করি না এটি কোনও কম হবে (অবশ্যই আমি ভুল হতে পারি ...)
ETH প্রোডাকশন

একদিকে: জাপট ২.০-তে আপনি তাত্ত্বিকভাবে পরিবর্তিত হতে "%v"পারেন \v(একটি একক-শ্রেণীর রেজেক্স আক্ষরিক, সমতুল্য /\v/)। এখনও সহায়ক নয়, অবশ্যই, যেহেতু আমি এখনও v2.0 প্রয়োগ করি নি;)
ইটিএইচ প্রোডাকশনস

@ এইচটি প্রোডাকশনস, যখন এই চ্যালেঞ্জটি পপ আপ হয়ে গেল তখন আমি দরজাটি চালিয়ে যাওয়ার জন্য প্রস্তুত ছিলাম তাই আমি আক্ষরিকভাবে এটিকে দ্রুত লিখেছিলাম। এটি আক্ষরিকভাবে কম করার জন্য আরও একটি ছোট উপায় থাকতে পারে, সম্ভবত? RegEx- এ এই পরিবর্তনগুলি কয়েকটি বাইট সংরক্ষণের জন্য কার্যকর হবে; তাদের অপেক্ষায়
শেগি


2

05 এ বি 1 ই , 14 বাইট

#RʒDžMDu«Ãg£R?

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

DARN 05AB1E এর AEIOUaeiou built_ಠ এর জন্য বিল্টিন নেই ಠ


1
অপেক্ষা করুন ... 05 এএফ 1 ই জাপট দ্বারা পিটিয়েছে?
মিঃ এক্সকোডার

@ মিঃ এক্সকোডার আপনার ভাবনার চেয়ে প্রায়শই ঘটে।
এরিক আউটগল্ফার

1
#RʒDlžMÃg£R?12 এর জন্য, আপনি প্রয়োজনটি সরাতে কেবলমাত্র ডুপকে ছোট করে রাখতে পারেন AEIOUaeiou। এছাড়াও, কেন হেক এই কাজটি করবে না ছাড়া ?? আপনি কি কোনও ব্যাখ্যা পোস্ট করতে পারেন, আমি তার সাথে অপরিচিতʒ
যাদু অক্টোপাস উরন

দুর্ভাগ্যক্রমে আউটপুট কেস-সংবেদনশীল হতে হবে @
এরিক আউটগল্ফার

2

গণিত, 145 বাইট tes

(s=StringCount[#,{"a","e","i","o","u","A","E","I","O","U"}]&/@(x=StringSplit@#);StringReverse[""<>Table[StringTake[x[[i]],s[[i]]],{i,Tr[1^s]}]])&

আমি ম্যাথামেটিকার সাথে সত্যই পরিচিত নই, তবে এর মধ্যবর্তী স্থানটি s[[i]]],এবং {i,Length@s}অপসারণ করা যায় না?
মিঃ এক্সকডার

হ্যাঁ অবশ্যই, আমি এটি মিস করেছি। আমি এটি আরও গল্ফ অবশ্যই আবশ্যক
J42161217

ম্যাথামেটিকায় একটি স্ট্রিং কাস্ট করার কোনও উপায় আছে কি? এরকম কিছু "aeiouAEIOU".ToCharArray()?
কায়ার্ড কইনিরিংহিংহ

আপনি অক্ষর মানে []?
J42161217

2

রেটিনা , 49 46 বাইট

i`(?=(([aeiou])|\w)+)((?<-2>.)+)\w* ?
$3
O^$`.

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার স্যুট অন্তর্ভুক্ত। ব্যাখ্যা: এটি .NET এর ব্যালেন্সিং গ্রুপগুলির একটি অ্যাপ্লিকেশন। লুয়াহেড স্বরবর্ণের জন্য শব্দটি সন্ধান করে, যা ২ টি গ্রুপে ধরা পড়েছে এবং প্রতিটি অক্ষর মিলে যাওয়ার সাথে সাথে এই গ্রুপটি পপ করা হয়, সুতরাং শব্দের মধ্যে স্বর সংখ্যার সমান বর্ণগুলির সংখ্যা ক্যাপচার করে। বাকী বাক্য এবং যেকোন পিছনের স্থানটিকে এড়িয়ে যাওয়া হয় যাতে পরবর্তী শব্দটি দিয়ে আবার প্রক্রিয়া শুরু করা যায়। অবশেষে বাকী অক্ষরগুলি বিপরীত হয়।


2

সি # (.নেট কোর) , 144 বাইট

using System.Linq;s=>new string(string.Join("",s.Split(' ').Select(e=>e.Substring(0,e.Count(c=>"aeiouAEIOU".Contains(c))))).Reverse().ToArray())

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

খারাপ অংশ একটি reversing হয় stringC # এর আয় একটি IEnumerable<char>যা আপনি একটি ফিরে রুপান্তরিত করতে হবে string



2

পাইথন 3 , 83 81 79 77 বাইট

  • মিঃ এক্সকোডার 2 বাইট সংরক্ষণ করেছেন
  • গ্রিফিন 2 বাইট সংরক্ষণ করেছেন: পাইথন থেকে 3 থেকে 2 এ স্যুইচ করুন
  • 2 বাইট সংরক্ষণ: ল্যাম্বডা ব্যবহার
lambda z:''.join(i[:sum(y in'aeiouAEIOU'for y in i)]for i in z.split())[::-1]

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



1
অজগর 2 তে পরিবর্তন করুন এবং আপনার ()মুদ্রণের জন্য দরকার নেই
গ্রিফিন

1
পাইথন ২-এ গ্রিফিনে আপনার প্রয়োজন raw_input()হবে এর পরিবর্তে input()4 বাইট নষ্ট করবেন।
মিঃ এক্সকোডার

1
@ মিঃ এক্সকোডার কেন আপনি কেবল উদ্ধৃতি দিয়ে ইনপুট দিতে পারবেন না?
গ্রিফিন

1
@ গ্রিফিন আহ, ঠিক আছে। এটি শেষ পর্যন্ত 2 বাইট সংরক্ষণ করতে পারে।
মিঃ এক্সকডার

2

জাভা 8 , 171 151 বাইট

-20 বাইটস @ লুকাস রটারকে ধন্যবাদ thanks

আমার মনে হচ্ছে এটি এখনও কিছু গল্ফিং দরকার ... আপনার কোনও পরামর্শ থাকলে মন্তব্যগুলিতে আমাকে জানান।

s->{String z="";for(String w:s.split(" "))z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());return new StringBuilder(z).reverse().toString();}

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


জাভা (?i)রেজেক্সগুলিতে কেস উপেক্ষা করার পক্ষে সমর্থন করে । তাই (?i)[aeiou]কাজ করা উচিত।
লুকাস রটার

আপনি {}লুপের বন্ধনীগুলিও সরিয়ে ফেলতে পারেন , কারণ এতে কেবলমাত্র একটি বিবৃতি রয়েছে।
লুকাস রটার

রেজেক্স স্ট্রিংয়ের দৈর্ঘ্য বিয়োগের পরিবর্তে আপনি কেবল ^স্বরগুলির পরিমাণ খুঁজে বের করতে ব্যবহার করতে পারেন : z+=w.substring(0,w.replaceAll("(?i)[^aeiou]","").length());
লুকাস রটার


1

কমন লিস্প, 218 বাইট

(defun p(s &aux(j 0)c(v 0)r)(dotimes(i(1+(length s))(apply'concatenate'string r))(cond((or(= i(length s))(eql(setf c(elt s i))#\ ))(setf r(cons(reverse(subseq s j(+ j v)))r)v 0 j(1+ i)))((find c"AEIOUaeiou")(incf v)))))

ব্যাখ্যা

(defun p(s &aux (j 0) c (v 0) r)               ; j start of word, c current char, v num of wovels, r result
  (dotimes (i                                  ; iteration var
            (1+ (length s))                    ; iteration limit
            (apply 'concatenate 'string r))    ; iteration final result
    (cond ((or (= i (length s))                ; if string is terminated   
               (eql (setf c (elt s i)) #\ ))   ;  or, set current char, and this is a space, then
           (setf r (cons (reverse (subseq s j (+ j v))) r) ; push on result from current word chars as number of vowels
                 v 0                           ; reset number of vowels to 0
                 j (1+ i)))                    ; reset start of current word to next char
          ((find c "AEIOUaeiou")               ; if current char is a wovel
           (incf v)))))                        ;   then increment num of vowels

1

সেড, 133 (132 + 1) বাইট

সেডটিকে -Eপতাকা সহ বলা হয় , যা স্পষ্টতই বোঝায় আমি একটি বাইট যুক্ত করি।
দ্রষ্টব্য: আমি এখনও এটি গল্ফ করার চেষ্টা করিনি।

s/$/\n/
:l
s/(.)(\n.*)/\2\1/
tl
s/\n/ /
h
s/[aoeui]//g
G
:r
s/^(\S*) \S(.*\n\S* )\S/\1 \2/
tr
s/^ //
s/(\n\S*) /\1/
/^\n/!br
s/\s//g

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


1

Clojure, 96 94 বাইট

#(apply str(mapcat(fn[i](take(count(filter(set"aeiouAEIOU")i))i))(reverse(re-seq #"[^ ]+"%))))

আচ্ছা এই দৈর্ঘ্যটি বেশ হাস্যকর। mapcatদুটি বাইট সংরক্ষণ


1

সুইফট 3, 240 বাইট

এটি এমন একটি ফাংশন যা এর সাথে ব্যবহার করা যেতে পারে f(s:"Input")। আশ্চর্যজনকভাবে, আমি আরও গল্ফ করা যেতে পারে বলে মনে করি না:

import Foundation
func f(s:String){var c=s.components(separatedBy:" "),r="";for i in c{let b=i.startIndex;r+=i[b...i.index(b,offsetBy: i.characters.filter{"aeiouAEIOU".contains(String($0))}.count-1)]};print(String(r.characters.reversed()))}

আইবিএম স্যান্ডবক্সে এটি ব্যবহার করে দেখুন!


2
সত্যই, মনে হচ্ছে আপনার কাছে এই জমা দেওয়ার পক্ষে সবচেয়ে স্বল্পতম সুইফট কোড রয়েছে have আমি এটি সুইফটেও সমাধান করেছি, এবং 240 বাইটও পেয়েছি! সাবাশ!
মিঃ এক্সকোডার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.