একটি স্ট্রিংয়ের প্রতিটি শব্দের স্বর সংখ্যা গণনা করুন


13

এটি বরং একটি সহজ চ্যালেঞ্জ।

চ্যালেঞ্জ

ইনপুটটিতে nullসর্বাধিক দৈর্ঘ্যের 100 টি স্ট্রিং থাকবে (না খালি নয়) of

বিধি

  • স্ট্রিং দৈর্ঘ্যে 100 টির বেশি অক্ষরের হবে না।
  • স্ট্রিং শুধুমাত্র বর্ণমালার উপস্থিত থাকবে A-Z, a-zএবং স্পেস থাকতে পারে।
  • stdinকমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট অবশ্যই গ্রাস করতে হবে ।
  • আউটপুট অবশ্যই আউটপুট করা উচিত stdout
  • আপনি একটি সম্পূর্ণ প্রোগ্রাম, বা এমন একটি ফাংশন লিখতে পারেন stdinযা ফলাফল থেকে ফলাফল দেয় এবং ফলাফল আউটপুট করে।
  • আপনার প্রোগ্রাম / ফাংশনটি গণনা করা উচিত স্বরগুলি হ'ল aeiouএবং AEIOU

পরীক্ষার কেস

This is the first test case     --> 1 1 1 1 1 2
one plus two equals three       --> 2 1 1 3 2
aeiou AEIOU                     --> 5 5
psst                            --> 0
the quick brown fox jumped over the lazy dog --> 1 2 1 1 2 2 1 1 1

স্কোরিং

এটি , তাই সংক্ষিপ্ততম জমা (বাইটে) জিতেছে।


6
আপনি বরং সীমাবদ্ধ আই / ও ফর্ম্যাটে জোর দেওয়ার কোনও কারণ আছে কি? প্রতিটি ভাষাই (সুবিধাজনকভাবে) STDIN এবং STDOUT এর সাথে ইন্টারঅ্যাক্ট করতে পারে না। আমাদের এটির জন্য ডিফল্ট রয়েছে (যা আপনি অবশ্যই যদি ওভাররাইড করতে চান তবে আপনি চান), যা কমান্ড-লাইন আর্গুমেন্ট, ফাংশন আর্গুমেন্ট, রিটার্ন মান ইত্যাদিও মঞ্জুরি দেয় (এগুলি ট্যাগ উইকিতেও পাওয়া যায় ।)
মার্টিন ইন্ডার

@ MartinBüttner, " একটি কারণ কেন আপনি একটি বরং নিয়ন্ত্রণমূলক ইনপুট / আউটপুট বিন্যাস পীড়াপীড়ি আছে কি? নং আমি ঠিক মত -" stdinসঙ্গে stdout। আমি ফাংশন আর্গুমেন্টের মাধ্যমে "ইনপুট পেতে" পছন্দ করি না। কমান্ড-লাইন আর্গুমেন্ট ঠিক আছে বলে মনে হচ্ছে। আমি এটি পোস্টে যুক্ত করেছি।
স্পিক্যাট্রিক্স

4
উইকিপিডিয়া: The name "vowel" is often used for the symbols that represent vowel sounds in a language's writing system, particularly if the language uses an alphabet. In writing systems based on the Latin alphabet, the letters A, E, I, O, U, and sometimes Y are all used to represent vowels. However, not all of these letters represent vowels in all languages.স্বর বলতে আপনি কী বোঝাতে চান?
edc65

একটি একক চলমান স্থান ঠিক আছে?
অ্যালেক্স এ।

3
প্রস্তাবিত চ্যালেঞ্জগুলির জন্য স্যান্ডবক্স ব্যবহার করুন।
mbomb007

উত্তর:


8

পাইথ, 17 বাইট

jdml@"aeiou"dcrzZ

সোজা সমাধান। এটি অনলাইনে ব্যবহার করে দেখুন: বিক্ষোভ বা পরীক্ষার জোতা

ব্যাখ্যা:

               z   input
              r Z  convert to lower-case
             c     split at spaces
  m                map each word d to:
    @"aeiou"d         filter d for chars in "aeiou"
   l                  length
jd                 join by spaces and implicitly print

লোকেরা যখন পাইথ সলিউশন লিখেন এবং এটিকে "স্ট্রেইটস ফরওয়ার্ড" বলে ডাকেন তখন এটি আমাকে সর্বদা বিস্মিত করে (যদিও এটি বেশিরভাগের চেয়ে সহজেই উপলব্ধি করা সহজ) +1
ক্রিস্টোফার উইট

10

সি, 113 108 103 96 বাইট

বিশেষত চমৎকার 5 বাইট সাশ্রয়ের জন্য @ অ্যান্ড্রি-বিওনডো ধন্যবাদ Thanks

main(a,v,c)char**v;{do{for(a=0;c=*v[1]++%32;2016%(c+27)||a++);printf("%d ",a);}while(v[1][-1]);}

এটি এখনও একরকম স্ফীতিত বোধ করে তাই আশা করি আমি আজ রাতের পরে বেশ কিছুটা বাইট নামিয়ে আনতে পারব।

মজার অংশটি সম্ভবত এটি

!(124701951%((c-65&31)+33))

এটি 1যদি cহয় (উচ্চতর বা নিম্নতর ক্ষেত্রে) ASCII স্বরবর্ণ এবং 0অন্যান্য অক্ষরের জন্য a-zA-Z। Subexpression c-65&31মানচিত্র 'a'এবং 'A'করতে 0, 'b'এবং 'B'করতে 2, ইত্যাদি আমরা যোগ যখন 33স্বরবর্ণ নম্বরে মিলা 33, 37, 41, 47, 53যথাক্রমে সব যা হয় (সুবিধামত) প্রধান। আমাদের পরিসীমাতে কেবল এই জাতীয় সংখ্যাগুলি বিভক্ত হবে 124701951 = 33*37*41*47*53, অর্থাত্ কেবল স্বরগুলির জন্যই বাকী অংশগুলি 124701951%(...)শূন্য হবে।

সম্পাদনা: এই পদ্ধতিতে কেউ ভাবটি বিবেচনা করতে পারে !(n%((c-65&31)+s))যেখানে (n,s) = (124701951, 33)চরিত্রটি cস্বরযুক্ত কিনা তা নির্ধারণ করে । মন্তব্যগুলিতে @ Andrea-biondo উল্লেখ করেছেন যে (n,s) = (2016,28)স্বরবর্ণ নির্ধারণ করতে এই জুটিও এই অভিব্যক্তিতে ব্যবহার করা যেতে পারে। আমি উপরের প্রাইমসের পরিপ্রেক্ষিতে বর্তমান ব্যাখ্যাটি ছেড়ে দেব, তবে এই সংক্ষিপ্ত জুটি কাজ করার কারণটি আবার কারণ কারণ ২৮---৩ পরিসরে পুরোপুরি ২০১ factors সালের প্রধান উপাদানগুলির সেটগুলিতে মূল উপাদানগুলির সাথে একমাত্র সংখ্যা ২৮, ৩২, 36, 42, 48, যা স্বরগুলির সাথে যথাযথভাবে মিলে যায়।

সম্পাদনা 2: যেহেতু আরও 5 টি বাইট সংরক্ষণ করা হয়েছে (c-65&31)+28তা সংক্ষিপ্ত করা যেতে পারে c%32+27

সম্পাদনা 3: শেষ পর্যন্ত এটি 100 বাইটের নিচে পেতে ডু-ওয়েল লুপে রূপান্তরিত।

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

/ ./vowelc "এটি প্রথম পরীক্ষার কেস"
1 1 1 1 1 2 
$ ./vowelc "এক যোগ দুটি তিনজনের সমান"
2 1 1 3 2 
$ ./vowelc "আইইউ আইইউইউ"
5 5 
$ ./vowelc "psst"                     
0

ঈশ্বর! এটা ঠিক দুর্দান্ত! আপনি a;বাইরের ব্যবহার করে আরও বাইট সংরক্ষণ করতে পারেন main। এই পদ্ধতি তবে আপনি আপনার ডিক্লেয়ার প্রয়োজন হবে না কিছু বাইট কমাতে aমধ্যে main(...), এবং এছাড়াও আরম্ভ করার প্রয়োজন হবে না aলুপ থেকে।
স্পিক্যাট্রিক্স

1
@ কুলগুই: aপ্রতিটি লুপে পুনরায় সূচনা করা হয়, তাই আপনি বিশ্বব্যাপী ঘোষণা করে শূন্যে একবার এটি আরম্ভ করতে পারবেন না। স্বরবর্ণের জন্য শূন্য এবং ব্যঞ্জনবর্ণের জন্য শূন্য নয় (এজেড, এজেড) এর জন্য সবচেয়ে ছোট (n, s)জোড়াটি খুঁজে পেতে আমি একটি ছোট ব্রুটোফেসার লিখেছিলাম n%((c-65&31)+s)। আমি খুঁজে পেয়েছি (2016, 28)এবং এটি ভালভাবে কাজ করছে বলে মনে হচ্ছে: !(2016%((c-65&31)+28))এটি পাঁচটি অক্ষর কম। যাইহোক, খুব সুন্দর সমাধান :)
Andrea Biondo

7

সিজেম, 21 19 বাইট

r{el_"aeiou"--,Sr}h

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

r{               }h    e# Read the first word and enter a do-while loop
  el_                  e# Convert the word into lower case and take a copy of it
     "aeiou"           e# All small caps vowels
            -          e# Remove all vowels from the copied word
             -         e# Remove all non-vowels from the original word
              ,        e# At this point, we have a string with all vowels of the word
                       e# Simply take its length
               S       e# Put a space after the number of vowel
                r      e# Read the next word. This serves as the truthy condition for the
                       e# do-while loop for us as if there are no word left, this returns
                       e# null/falsy and the do-while loop is exited

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


6

আর, 44 43 বাইট

cat(nchar(gsub("[^aeiou]","",scan(,""),T)))

অবহেলিত + ব্যাখ্যা:

# Read a string from STDIN. scan() automatically constructs a vector
# from input that contains spaces. The what= argument specifies that
# a string will be read rather than a numeric value. Since it's the
# second specified argument to scan(), we can simply do scan(,"").

s <- scan(what = "")

# For each word of the input, remove all consonants using gsub(),
# which is vectorized over its input argument.

g <- gsub("[^aeiou]", "", s, ignore.case = TRUE)

# Print the number of remaining characters in each word to STDOUT
# using cat(), which automatically separates vector values with a
# single space.

cat(nchar(g))

5

পার্ল, 35 34 31

say map{lc=~y/aeiou//.$"}split

30+1জন্য অক্ষর -n

প্রচুর পার্ল কোডের মতো এটি ডান থেকে বামে কাজ করে। splitহোয়াইটস্পেসে ইনপুটযুক্ত লাইনটি বিভক্ত করবে। বিভক্ত প্রতিটি শব্দের mapমধ্যে কোড চালাবে {}lcশব্দটি লোয়ার কেস করে তোলে। =~y/aeiou//আমাদের স্বর গণনা দেবে। .$"শব্দটিতে একটি স্থান যুক্ত করবে। sayতারপরে সব কথা ছাপে!

সাথে চালান:

echo 'aeiou AEIOU' | perl -nE'say map{lc=~y/aeiou//.$"}split'

4

পাইথন 3, 65 বাইট

print(*[sum(c in'aeiouAEIOU'for c in w)for w in input().split()])

খুব সোজা, মোটামুটি পাঠযোগ্য। wশব্দের জন্য দাঁড়িয়েছে, cচরিত্রের জন্য দাঁড়িয়েছে।


4

পার্ল: 30 টি অক্ষর

(বিভিন্ন ধরণের নিয়মকে বাধ্যতামূলক করে: আউটপুটে সংখ্যাগুলি ইনপুট শব্দের যতটা স্পেস দিয়ে আলাদা করা হয়েছিল))

s|\w+|@{[$&=~/[aeiou]/gi]}|ge

নমুনা রান:

bash-4.3$ while read s; do printf '%-30s --> ' "$s"; perl -pe 's|\w+|@{[$&=~/[aeiou]/gi]}|ge' <<< "$s"; done < test-case.txt
This is the first test case    --> 1 1 1 1 1 2
one plus two equals three      --> 2 1 1 3 2
aeiou AEIOU                    --> 5 5
psst                           --> 0

পার্ল: 27 টি অক্ষর

(জাস্ট দেখানোর জন্য যদি আমি ভুলে করা হয়নি কিভাবে সংক্ষিপ্ত হবে y///এর ফেরত মান। আবার। এখন যাও, ভোট দিন chilemagic এর উত্তর যা আমাকে সম্পর্কে স্মরণ করিয়ে y///এর ফেরত মান। আবার।)

s|\w+|lc($&)=~y/aeiou//|ge

ডাং এই আমার উত্তর প্রহার। এই s!\w+!lc($&)=~y/aeiou//!geনিচে এটি পায় 27বাইট (জন্য 26 টি অক্ষর + 1 -p
hmatt1

হ্যা ধন্যবাদ. আমি আর কতবার ভুলে গিয়েছিলাম তা আমি নিজের আঙ্গুলগুলিতে বিশ্বাস করতে পারি না y///। :(
manatwork

3

রুবি, 38 বাইট

$><<$*.map{|x|x.count'AIUEOaiueo'}*' '

ব্যবহার:

mad_gaksha@madlab /tmp/ $ ruby t.rb This is the first test case
1 1 1 1 1 2

3

জাভাস্ক্রিপ্ট ( ES6 ), 68

পপআপ মাধ্যমে আই / ও। পরীক্ষার জন্য ফায়ারফক্সে স্নিপেট চালান।

// As requested by OP

alert(prompt().replace(/\w+/g,w=>w.replace(/[^aeiou]/ig,'').length))

// Testable
f=s=>s.replace(/\w+/g,w=>w.replace(/[^aeiou]/ig,'').length)

test=[
 ['This is the first test case','1 1 1 1 1 2']
,['one plus two equals three','2 1 1 3 2']
,['aeiou AEIOU', '5 5']
]  

out=x=>O.innerHTML+=x+'\n'

test.forEach(t=>{
  r=f(t[0])
  out('Test '+ ['Fail','OK'][0|r==t[1]]
      +'\nInput:  '+ t[0]
      +'\nOutput: '+r
      +'\nCheck:  '+t[1]+'\n')
})
<pre id=O></pre>



3

পাওয়ারশেল, 35 বাইট

%{($_-replace"[^aeiou]",'').length}

কিন্ডা বিরক্তিকর, কিন্তু আসলে একবার প্রতিযোগিতা? (পাওয়ারশেল ডিফল্টরূপে ক্ষেত্রে সংবেদনশীল নয়, ওও)


অবগতির জন্য, তোমার মত এই কল needto echo <word> | code, যেখানে <শব্দ> আপনার শব্দ বা শব্দগুচ্ছ হয়
Pureferret

3

বাশ - 85

while read l;do for w in $l;do x=${w//[^aouieAOUIE]};echo -n ${#x}\ ;done;echo;done

ব্যাখ্যা

  • read l ইনপুট থেকে একটি লাইন পড়ুন
  • for w in l সাদা স্পেস বিভাজক ব্যবহার করে লাইনটি শব্দগুলিতে বিভক্ত করে
  • x=${w//[^aouieAOUIE]/} শব্দ থেকে স্বর বাদে সব মুছে দেয়
  • ${#x} ফলাফলের স্ট্রিংয়ের দৈর্ঘ্য === স্বর সংখ্যা

কোনওভাবে ওভারডোন অনুভব করে। প্রয়োজনীয়তা বলছে ইনপুটটিতে কেবলমাত্র অক্ষর এবং স্পেস থাকবে। তাহলে আপনি কেন এটি একাধিক ইনপুট লাইন প্রক্রিয়াজাত করতে প্রস্তুত? ছাড়া while.. do.. doneসংক্ষিপ্ত হবে। /প্যাটার্ন প্রতিস্থাপনে শেষের দরকারও নেই। এবং একটি একক আক্ষরিক স্থান উদ্ধৃত চেয়ে ছোট পলায়ন। read l;for w in $l;do x=${w//[^aouieAOUIE]};echo -n ${#x}\ ;done;echo
manatwork

আমি সম্মত তবে নিয়মটি বলেছে 'আপনি একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন, বা এমন একটি ফাংশন যা স্টিডিনের কাছ থেকে ইনপুট নেয় এবং ফলাফলটি আউটপুট করে।' তাই আমি পুরো প্রোগ্রামটি করার সিদ্ধান্ত নিয়েছি। আমি দুটি বাইট সংরক্ষণ করার সমাধানটি সম্পাদনা করব)) ধন্যবাদ!
xuesheng

3

জুলিয়া, 76 72 69 65 বাইট

for w=split(readline()) print(count(i->i"aeiouAEIOU",w)," ")end

অবহেলিত + ব্যাখ্যা:

# Read a string from STDIN and split it into words
s = split(readline())

# For each word in the string...
for w in s
    # Get the number of vowels of any case in the word
    c = count(i -> i  "aeiouAEIOU", w)

    # Print the number of vowels identified
    print(c, " ")
end

এর মধ্যে একটি একক চলমান স্থান অন্তর্ভুক্ত থাকবে, যা আমাকে বলা হচ্ছে বৈধ।


2

গণিত, 95 বাইট

কোনও প্রতিযোগিতা জিততে যাচ্ছে না, তবে ...

Print@StringRiffle[ToString[#~StringCount~Characters@"aeiouAEIOU"]&/@StringSplit@InputString[]]

আপনি কি এমন কোনও অনলাইন সংকলক সম্পর্কে জানেন যেখানে আমি এটি পরীক্ষা করতে পারি?
স্পিক্যাট্রিক্স

কোনও নেই, তবে আপনি এখানে একটি নিখরচায় পরীক্ষা পেতে পারেন ।
LegionMammal978

@ কুলগুই এখানে একটি নিখরচায় অ্যাকাউন্ট পেলে আপনি অনলাইনে ম্যাথমেটিকা ​​(ওল্ফ্রাম ভাষা) কোড চালাতে পারেন । ( InputStringযদিও ওয়েব ইন্টারফেসে এটি বিদ্যমান তা নিশ্চিত নয়, এটি ম্যাথামেটিকায় একটি ডায়ালগ))

@ ক্যাল ইন ম্যাথমেটিকা ​​স্ক্রিপ্টস, ইনপুটটির InputStringপরবর্তী লাইনটি গ্রহণ করে।
LegionMammal978

আচ্ছা আমি দেখি. এটি এখনও ক্লাউড নোটবুকে কাজ করবে কিনা তা নিশ্চিত নয় তবে কমপক্ষে এখন আমি জানি কেন এটি স্টিডিনের জন্য ব্যবহৃত হচ্ছে।

2

গল্ফ্লুয়া, 55 বাইট

~@W I.r():l():gm("%w+")_,c=W:g("[aeiou]",'')I.w(c,' ')$

জোর ছোট ছোট হাতের পরে স্বরগুলির মূল প্যাটার্ন মিল matching একটি (অবারিত) লুয়া সমতুল্য হবে

line=io.read()
for word in line:lower():gmatch("%w+") do
   _,c=word:gsub("[aeiou]",'')
   io.write(c," ")
end

লুয়া সংস্করণটির জন্য আলাদাভাবে, ব্যবহার করতে gsub('[aeiouAEIOU]','')ও এড়াতে এটি আসলে 2 টি অক্ষর ছোট হবে lower()
কাইল কানোজ


2

পাইথন 3, 72 বাইট

@ রেন্ডোমর এর উত্তর দ্বারা অনুপ্রাণিত । এটি একই দৈর্ঘ্যটি সামান্য দীর্ঘ, তবে তালিকা বোঝার পরিবর্তে রেজেেক্স ব্যবহার করছে। এটিও কম পাঠযোগ্য।

import re
print(*map(len,re.sub("[^aeiou ]","",input(),0,2).split(" ")))

7 বাইট সংরক্ষণ করুন: import re;print(*map(len,re.sub("[^aeiou ]","",input()).split()))। ( ;আপনি চাইলে পরিবর্তে নতুন লাইন ব্যবহার করুন ))
mbomb007

@ mbomb007 এটি সংবেদনশীল হওয়া উচিত ( 2কেস সংবেদনশীল পতাকা) এবং এর দ্বারা বিভক্ত " "

আহ, আমার পরীক্ষাগুলি তা লক্ষ্য করার মতো যথেষ্ট পরিমাণে ছিল না।
mbomb007

2

পিএইচপি - 94

foreach(explode(' ',$argv[1]) as$d){preg_match_all('/[aeiou]/i',$d,$v);echo count($v[0]).' ';}

উদার সংস্করণ

$a = explode(' ',$argv[1]);
foreach($a as $d) {
    preg_match_all('/[aeiou]/i', $d, $v);
    echo count($v[0]).' ';
}

2

উদ্দেশ্য-সি, 223 বাইট

-(void)p:(NSString*)s{NSArray*a=[s componentsSeparatedByString:@" "];for(NSString*w in a){int c=0;for(int i=0;i<w.length;i++){if([@"aeiouAEIOU"containsString:[w substringWithRange:NSMakeRange(i,1)]]){c++;}}NSLog(@"%d",c);}}

সর্বাধিক কমপ্যাক্ট ভাষা নয়, তবে এটি কাজ করে।

সঙ্কুচিত সংস্করণ:

- (void)p:(NSString*)s{
    NSArray*a=[s componentsSeparatedByString:@" "];
    for (NSString*w in a) {
        int c=0;
        for (int i=0;i<w.length;i++) {
            if ([@"aeiouAEIOU" containsString:
                 [w substringWithRange:NSMakeRange(i, 1)]]) {
                c++;
            }
        }
        NSLog(@"%d",c);
    }
}

2

মতলব, 73 বাইট

আপনার চ্যালেঞ্জ খুব পরিষ্কার নয় (তবে এটি আকর্ষণীয়)। আমি ধারনা করছি

  • "স্বরবর্ণ" করার মাধ্যমে আপনি অর্থ a, e, i, o, u
  • স্ট্রিংটিতে শীর্ষস্থানীয় বা পিছনের স্থানগুলি নেই

কোড:

diff(find(regexprep([' ' input('','s') ' '],'[^aeiouAEIOU ]','')==' '))-1

2

আরএস , 50 বাইট

এটি যথেষ্ট গণনা হয় না; আরএস পোস্ট হওয়ার প্রায় 2 সপ্তাহ পরে আপলোড করা হয়েছিল। তবে স্পষ্টতই এটি কোনওভাবেই জিততে পারে না, তাই এটি এখনও দুর্দান্ত।

*[aeiou]/_
(^| )[^_\s]+ |$/ 0
[^_\s0]/
(_+)/(^^\1)

জীবন্ত উদাহরণ.

বাস্তবায়ন বরং সোজা:

*[aeiou]/_            Replace all vowels with underscores.
(^| )[^_\s]+ |$/ 0    Replace words that have no vowels with a zero.
[^_\s0]/              Remove all other letters.
(_+)/(^^\1)           Convert the underscore sequences into numbers (e.g. '___' to 3).

2

পার্ল, 60 45

$/=" ";while(<>){$n=()=/[aeiou]/gi;print"$n "

আমাকে 15 বাইট বাঁচানোর জন্য কিরবিফ্যান64সসকে ধন্যবাদ - এটি সত্যই সহায়তা করেছে!
আউটপুট শেষে একটি অতিরিক্ত স্থান আছে নোট।


আপনি splitসংযোজন সেট করে কলটি সরাতে পারবেন $/=" ";এবং আপনি লুপ উপসর্গটি সংক্ষিপ্ত করতে পারেন while(<>)। এই দুটি পরিবর্তনের সাথে সাথে কোডটি হয়ে যায় $/=" ";while(<>){$n=()=/[aeiou]/gi;print"$n "}14 টি বাইট সংরক্ষণ!
kirbyfan64sos

2

হাস্কেল, 76 68 বাইট

f=interact$unwords.map(show.length).filter(`elem`"aeiouAEIOU").words

সোজা বাস্তবায়ন, এখানে গল্ফের কিছু আছে কিনা তা নিশ্চিত নয়।


1

কেডিবি (কিউ), 30 বাইট

{sum@'lower[" "vs x]in"aeiou"}

ব্যাখ্যা

            " "vs x              / split x string by space
      lower[       ]             / lower case
                    in"aeiou"    / check vowel
 sum@'                           / sum each booleans
{                            }   / lambda

পরীক্ষা

q){sum@'lower[" "vs x]in"aeiou"}"This is the first test case"
1 1 1 1 1 2i

1

স্মার্টটাক - 66 72

এটি স্মলটক / এক্সে রয়েছে; স্টিডিন এবং স্টাডাউটের নামগুলি স্কেয়াক / ফেরোতে আলাদা হতে পারে।

Stdin nextLine subStrings do:[:w|(w count:[:c|c isVowel])print.' 'print]

স্মলটালক / এক্স (এবং আরও অনেক উপভাষায়), চিহ্নগুলি # মূল্য: বোঝে, সুতরাং এটি 66 টি সংক্ষেপে সংক্ষিপ্ত হতে পারে:

 Stdin nextLine subStrings do:[:w|(w count:#isVowel)print.' 'print]

যদি কোনও ফাংশন হিসাবে কোড করা হয় যা আর্গুমেন্ট "গুলি" হিসাবে স্ট্রিংটি পেয়েছে:

[:s|s subStrings do:[:w|(w count:#isVowel)print.' 'print]]

অবশ্যই, বাস্তব কোডে, কেউ একটি ইউটিলিটি ফাংশন "f" ব্যবহার করবে, যা গণনাগুলির একটি ভেক্টরকে ফিরিয়ে দেয় এবং এটি মুদ্রণ করে। যাইহোক, আউটপুট ফর্ম্যাটটি চ্যালেঞ্জটির অনুরোধটি ঠিক তেমনটি নয়:

f := [:s|s subStrings collect:[:w|(w count:#isVowel)]].
(f value: Stdin nextLine) print.

1

পাইথন 2, 76 বাইট

আমি অন্য কোনও সমাধান দেখার আগে এটি তৈরি করেছিলাম, তারপরে দুটি পি 3 সমাধানগুলি সংক্ষিপ্ত আকারগুলি অনুসন্ধান করার জন্য পরীক্ষা করেছিলাম :( ডার্ন পি 2 সীমাবদ্ধতা)।

print' '.join(`sum(y in'aeiouAEIOU'for y in x)`for x in raw_input().split())

1

পাওয়ারশেল, 65 বাইট

($input-split'\s'|%{($_-split''-match'a|e|i|o|u').count})-join' '

হিসাবে সংরক্ষণের পরে নীচের প্যাটার্ন ব্যবহার করে পরীক্ষা vowels.ps1

"the quick brown fox" | vowels.ps1

এইভাবে এটি একটি আসল স্ক্রিপ্ট এবং কেবল একটি কোড স্নিপেট নয় যার ফলে সন্তুষ্টিজনক বাধা:

"স্টিডিন বা কমান্ড লাইন আর্গুমেন্ট থেকে ইনপুট গ্রহণ করা উচিত।"


1

জেলি , 7 বাইট

Ḳf€ØcL€

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

সহায়তায় পাওয়া জনাব Xcoder মধ্যে চ্যাট

ব্যাখ্যা

Ḳf€ØcL€ - Main link. Argument: s (a string)  e.g. "aeiou AEIOU"
Ḳ       - Split the input on spaces               ["aeiou", "AEIOU"]
   Øc   - Generate the string "AEIOUaeiou" 
 f€     - Filter out consonants from €ach         ["aeiou", "AEIOU"]
     L€ - Length of €ach                          [5, 5]

যদি আউটপুট অবশ্যই স্থান দ্বারা পৃথক করা উচিত , তারপরে Kশেষে একটি যুক্ত করুন


0

এসএএস, 72

data;infile stdin;file stdout;input c$@@;x=countc(c,'aeiou','i');put x@;

এটির জন্য সীমাবদ্ধ আই / ও ফর্ম্যাটটি সত্যিই এটিকে ব্যথা দেয় কারণ এটি এখানে 25 বাইটের জন্য দায়ী।


0

সি # 186

public class a{public static void Main(string[] a){Console.Write(string.Join(" ",Console.ReadLine().Split(' ').Select(x=>x.ToCharArray().Count(y=>"aeoui".ToCharArray().Contains(y)))));}}

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