একটি ফাংশন লিখুন যা অক্ষর এবং স্পেসগুলির একটি স্ট্রিং নেয় (নন-অক্ষরগুলি হ্যান্ডেল করার দরকার নেই) এবং আনোনসার ভয়েস অনুবাদ অ্যালগরিদমটি নিম্নলিখিতভাবে সম্পাদন করে:
- প্রথমত, বড় হাতের সবকিছু।
- প্রতিটি শব্দের জন্য,
- প্রতিটি বর্ণকে তিনগুণ করে প্রতিটি ব্যঞ্জনাত্মক গোষ্ঠী দীর্ঘায়িত করুন ; শব্দটি যদি ব্যঞ্জনাত্মক গুচ্ছ দিয়ে শুরু হয় তবে এ ক্লাস্টারটি দীর্ঘায়িত করবেন না। উদাহরণস্বরূপ,
other
হয়ে ওঠা উচিতOTTTHHHEEERRR
কিন্তুmother
হওয়া উচিতMOTTTHHHEEERRR
। - চূড়ান্ত স্বরটি তিনগুণ করে দীর্ঘ করুন।
- প্রতিটি বর্ণকে তিনগুণ করে প্রতিটি ব্যঞ্জনাত্মক গোষ্ঠী দীর্ঘায়িত করুন ; শব্দটি যদি ব্যঞ্জনাত্মক গুচ্ছ দিয়ে শুরু হয় তবে এ ক্লাস্টারটি দীর্ঘায়িত করবেন না। উদাহরণস্বরূপ,
- প্রলম্বনের উভয় ক্ষেত্রে , আপনি যদি কোনও চিঠি ট্রিপল করে থাকেন, প্রথমে উভয় দিকে সদৃশ অক্ষর দিয়ে একত্রিত করুন। উদাহরণস্বরূপ,
hill
হওয়া উচিতHIIILLL
এবংbookkeeper
হওয়া উচিতBOOKKKEEPPPEEERRR
। - এই চ্যালেঞ্জের উদ্দেশ্যে,
y
ব্যঞ্জনা হিসাবে গণনা করা হয়। - স্পষ্টকরণ / সরলকরণ: আপনি ধরে নিতে পারেন যে শব্দগুলির প্রতিটি জোড়া একটি একক স্পেস দ্বারা পৃথক করা হয়েছে এবং ইনপুটটিতে কোনও ক্রমাগত স্থান নেই এবং ইনপুটটি খালি স্ট্রিং হবে না।
- সবচেয়ে কম কোড জয়!
পরীক্ষা ভেক্টর:
> sunday sunday
SUNNNDDDAAAYYY SUNNNDDDAAAYYY
> mia hamm
MIAAA HAAAMMM
> chester alan arthur
CHESSSTTTEEERRR ALLLAAANNN ARRRTTTHHHUUURRR
> attention please
ATTTENNNTTTIOOONNN PLEASSSEEE
> supercalifragilisticexpialidocious
SUPPPERRRCCCALLLIFFFRRRAGGGILLLISSSTTTICCCEXXXPPPIALLLIDDDOCCCIOUUUSSS
> moo
MOOO
> Aachen
AACCCHHHEEENNN
> Oooh
OOOHHH
> grifffest
GRIFFFEEESSSTTT
> k
K
> aaaabbbbc
AAAABBBBCCC
এখানে একটি রেফারেন্স বাস্তবায়ন যা আমি আজ সকালে প্রশ্নটি বন্ধ করে দেওয়া বাদ দিয়ে একটি উত্তরে চলে যাই। : P: P
import itertools,re
def j(s):return re.match('^[AEIOU]+$',s)
def c(s):return ''.join(sum(([h,h,h]for h in[k for k,g in itertools.groupby(s)]),[]))
def v(s):
while len(s)>=2 and s[-2]==s[-1]:s=s[:-1]
return s+s[-1]+s[-1]
def a(n):
r=''
for w in n.split():
if r:r+=' '
ss=re.split('([AEIOU]+)', w.upper())
for i,s in enumerate(ss):
r += [v(s),s][any(j(t) for t in ss[i+1:])]if j(s)else[s,c(s)][i>0]
return r
while 1:print a(raw_input('> '))