আপনাকে এমন একটি প্রোগ্রাম লেখার দায়িত্ব দেওয়া হয়েছে যা হাইফেন দিয়ে আলাদা করে পাঠ্যের স্ট্রিংয়ে শব্দের সংক্ষিপ্ত বিবরণ দেয়। এটি অনেক কাজ হবে, সুতরাং আপনি কিছু অংশ ছেড়ে যেতে চান, প্রধানত কারণ আপনি নিখুঁত অ্যালগরিদমের জন্য প্রয়োজনীয় উচ্চারণগুলির একটি টেবিল রাখতে চান না। এই অ্যাসাইনমেন্ট দেওয়ার প্রতিশোধ হিসাবে আপনি এটিকে যথাসম্ভব সংক্ষিপ্ত (এবং এইভাবে অপঠনযোগ্য এবং অভাবনীয়) করতেও চান।
আপনার দুটি পছন্দ আছে:
- এমন একটি প্রোগ্রাম লিখুন যা STDIN থেকে স্ট্রিং নেয় এবং ফলাফলটি STDOUT এ আউটপুট করে।
- একটি ফাংশন লিখুন যা একক প্যারামিটার হিসাবে স্ট্রিং নেয় এবং ফলাফলটি দেয় returns
সবিস্তার বিবরণী
- এই ক্ষেত্রে, স্ট্রিং মানে আপনার পছন্দের ভাষাতে কোনও স্ট্রিং-জাতীয় নির্মাণ (বাইট অ্যারে, চরিত্রের অ্যারে, স্ট্রিং ...)।
- স্বর হয়
a, e, i, o, u
- প্রদত্ত স্ট্রিংয়ের
1 <= n <= 10
শব্দ রয়েছে, যেখানে প্রত্যেকটির1 - 30
অক্ষরের মধ্যে একটি দৈর্ঘ্য রয়েছে , সমেত .. আপনার আউটপুটটি সেই শব্দগুলিকে হাইফেনটেড হওয়া উচিত। - সমস্ত অক্ষর ছোট হাতের এবং শব্দ সর্বদা ফাঁক দিয়ে পৃথক করা হয়। সুতরাং, ইনপুট অক্ষর নিয়ে গঠিত
[a-z ]
- গুরুত্বের সাথে নিয়ম প্রয়োগ করুন।
- যখন একটি শব্দ বিভক্ত হয়, আবার শব্দের ডান অর্ধেক দিয়ে আবার শুরু করুন।
পাঠ্যক্রমের নিয়ম , গুরুত্বের সাথে
পরপর দুই একই স্বরবর্ণ গণনা হিসাবে (অর্থাৎ। feet
শুধুমাত্র একটি স্বরবর্ণ আছে, কিন্তু beat
এবং finding
দুই থাকে)। প্রতিটি বর্ণের ঠিক একটি স্বর থাকে, এইভাবে প্রতিটি স্বরটির জন্য একটি করে উচ্চারণ রয়েছে।
- যদি পুরো শব্দের কেবল চারটি অক্ষর থাকে তবে এটিকে অপরিবর্তিত রাখুন। (বাকী শব্দটির জন্য এড়িয়ে যান)
- শব্দটির যদি একটি মাত্র স্বর থাকে তবে শব্দটি অপরিবর্তিত রেখে দিন।
- শব্দটির যদি পর পর দুটি স্বর থাকে তবে তাদের মধ্যে ভাগ করুন (যেমন
diaspora
->di-as-po-ra
) - যখন দুটি বা ততোধিক ব্যঞ্জনা দুটি স্বর (একই বা পৃথক) এর মধ্যে আসে, তবে প্রথম ব্যঞ্জনবর্ণের পরে ভাগ করুন (অর্থাত্
sis-ter
) ব্যঞ্জনবর্ণের অংশ না থাকলেck
, এক্ষেত্রে শব্দটির পরে বিভাজন করুন। (যেমন।nickel
->nick-el
) - যখন
y
দুটি স্বরবর্ণের মধ্যে আসে, তার পরে শব্দটি ভাগ করুন (যেমনpaying
->pay-ing
)। - যখন একটি ব্যঞ্জনবর্ণ দুটি স্বর (একই বা ভিন্ন) এর মধ্যে আসে, তখন ব্যঞ্জনবর্ণের আগে ভাগ করুন (অর্থাত্
dra-gon
) - কোনও বিভাগ করা না গেলে শব্দটি অপরিবর্তিত রেখে দিন।
আমি এই নিয়মগুলি বেছে নিয়েছি কারণ এগুলি সমস্যা ছাড়াই পুনরাবৃত্তভাবে প্রয়োগ করা যেতে পারে এবং কোনও উচ্চারণের টেবিলের প্রয়োজন নেই। সুতরাং, এগুলি সঠিক নয় এবং উদাহরণস্বরূপ নিয়ম # 5 প্রায়শই সঠিক হয় না। সাধারণ ক্ষেত্রে যদিও, এটি হয়।
উদাহরণ
In: hello world
Out: hel-lo world
In: have a nice day
Out: have a nice day
In: pour some nickel and xenon there
Out: pour some nick-el and xe-non the-re
lua
x-e-non
? নিয়ম # 4 এর জন্য রেফারেন্স?