চরিত্র
আসুন এই ইউনিকোড অক্ষরগুলিকে ইংরেজি আইপিএ ব্যঞ্জনবর্ণ বলুন :
bdfhjklmnprstvwzðŋɡʃʒθ
এবং আসুন এই ইউনিকোড অক্ষরগুলিকে ইংরেজি আইপিএ স্বর বলুন :
aeiouæɑɔəɛɜɪʊʌː
(হ্যাঁ, ː
এটি কেবল দীর্ঘ স্বর চিহ্ন, তবে এই চ্যালেঞ্জের উদ্দেশ্যে স্বর হিসাবে বিবেচনা করুন))
শেষ অবধি, এগুলি প্রাথমিক এবং গৌণ মানসিক চিহ্ন :
ˈˌ
মনে রাখবেন যে
ɡ
( U + 0261 ) কোনও ছোট হাতের ছড়া নয় , এবং প্রাথমিক স্ট্রেস মার্কারˈ
( U + 02C8 ) কোনও এস্ট্রোস্ফ নয় এবংː
( U + 02D0 ) কোলন নয়।
তোমার কাজ
একটি শব্দ দেওয়া হয়েছে, তারা যে ব্যঞ্জনবর্ণগুলি অনুসরণ করে তার উপরে স্বরগুলি স্ট্যাক করুন এবং তারা যে ব্যঞ্জনবর্ণের পূর্বে বসে তার নীচে স্ট্রেস মার্কার রাখুন। (প্রশ্নের শিরোনামের ইঙ্গিত হিসাবে, এই জাতীয় একটি লেখার ব্যবস্থা, যেখানে ব্যঞ্জনবর্ণ-স্বর ক্রমগুলি একক হিসাবে একত্রে প্যাক করা হয়, তাকে আউবিগিডা বলা হয় )) ইনপুট প্রদত্ত ˈbætəlʃɪp
, আউটপুট উত্পাদন করুন:
æə ɪ
btlʃp
ˈ
উপরোক্ত সংজ্ঞা অনুসারে একটি শব্দ ব্যঞ্জনবর্ণ, স্বরবর্ণ এবং স্ট্রেস চিহ্নের একটি স্ট্রিং হওয়ার গ্যারান্টিযুক্ত। কখনও ক্রমাগত চাপের চিহ্ন থাকবে না এবং এগুলি সর্বদা শব্দের শুরুতে এবং / অথবা কোনও ব্যঞ্জনবর্ণের আগে স্থাপন করা হবে ।
পরীক্ষার মামলা
একটানা স্বর হতে পারে। উদাহরণস্বরূপ, kənˌɡrætjʊˈleɪʃən
হয়ে যায়
ɪ
ə æ ʊeə
knɡrtjlʃn
ˌ ˈ
যদি কোনও শব্দের একটি স্বর দিয়ে শুরু হয়, তবে ব্যঞ্জনবর্ণ সহ এটি "বেসলাইনে" মুদ্রণ করুন: əˈpiːl
হয়ে যায়
ː
i
əpl
ˈ
প্রাথমিক, চাপযুক্ত স্বরযুক্ত একটি পরীক্ষার কেস: ˈælbəˌtrɔs
হয়ে যায়
ə ɔ
ælbtrs
ˈ ˌ
একটি দীর্ঘ শব্দ: ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs
হয়ে যায়
æ
ː ː ʊ
uə aə æ əɪ ɪɛ iəoə
sprklfrdʒlstkkspldʃs
ˌ ˌ ˌ ˌ ˌ ˈ
প্রাথমিক ডিপথং সহ প্রচুর স্বরযুক্ত স্ট্যাকিং এবং স্ট্রেস মার্কার নেই এমন একটি বাজে উদাহরণ eɪbaeioubaabaaa
becomes
u
o
i a
eaa
ɪaaa
ebbb
রেফারেন্স বাস্তবায়ন
আপনার প্রোগ্রামে এই পাইথন স্ক্রিপ্টের মতোই আউটপুট তৈরি করা উচিত:
consonants = 'bdfhjklmnprstvwzðŋɡʃʒθ'
vowels = 'aeiouæɑɔəɛɜɪʊʌː'
stress_marks = 'ˈˌ'
def abugidafy(word):
tiles = dict()
x = y = 0
is_first = True
for c in word:
if c in stress_marks:
tiles[x + 1, 1] = c
elif c in consonants or is_first:
y = 0
x += 1
tiles[x, y] = c
is_first = False
elif c in vowels:
y -= 1
tiles[x, y] = c
is_first = False
else:
raise ValueError('Not an IPA character: ' + c)
xs = [x for (x, y) in tiles.keys()]
ys = [y for (x, y) in tiles.keys()]
xmin, xmax = min(xs), max(xs)
ymin, ymax = min(ys), max(ys)
lines = []
for y in range(ymin, ymax + 1):
line = [tiles.get((x, y), ' ') for x in range(xmin, xmax + 1)]
lines.append(''.join(line))
return '\n'.join(lines)
print(abugidafy(input()))
বিধি
আপনি কোনও ফাংশন বা একটি সম্পূর্ণ প্রোগ্রাম লিখতে পারেন।
যদি আপনার প্রোগ্রামটিতে একটি ইউনিকোড অক্ষর / স্ট্রিং প্রকার থাকে, আপনি ইনপুট এবং আউটপুটগুলি সেগুলি ব্যবহার করে ধরে নিতে পারেন। যদি না হয়, বা আপনি STDIN থেকে পড়েন / লিখেন তবে ইউটিএফ -8 এনকোডিং ব্যবহার করুন।
আপনি নিউলাইনগুলি সহ একটি স্ট্রিং উত্পাদন করতে পারেন, বা সারিগুলিকে উপস্থাপন করে এমন স্ট্রিংগুলির তালিকা, বা ইউনিকোড অক্ষরের একটি অ্যারে তৈরি করতে পারেন।
আউটপুট প্রতিটি সারিতে ট্রেলিং স্পেস পরিমাণ পরিমাণ থাকতে পারে। যদি আপনি একটি স্ট্রিং উত্পাদন করেন তবে এটিতে একটি একক ট্রেলিং নিউলাইন থাকতে পারে।
আপনার প্রোগ্রামটি নির্বিচারে দীর্ঘ স্বরযুক্ত চেইনগুলির সাথে নির্বিচারে দীর্ঘ শব্দের জন্য সঠিক আউটপুট তৈরি করা উচিত, তবে ইনপুট শব্দটি সর্বদা বৈধ বলে ধরে নিতে পারে।
যদি কোনও স্ট্রেস মার্কার না থাকে তবে আপনার আউটপুটে optionচ্ছিকভাবে একটি চূড়ান্ত খালি সারি অন্তর্ভুক্ত থাকতে পারে (কোনও কিছুই বা শূন্যস্থান নেই)।
সংক্ষিপ্ত উত্তর (বাইটে) জিতেছে।
ɜ
, সুতরাং এটি এখন সম্পূর্ণ সাধারণ আমেরিকান স্বর সেট হওয়া উচিত।
biiiiiiiiiiiʒ
(যেমন "মৌমাছিদের মতো নয়")
ɜ
, আপনি এটি ছেড়ে দিয়েছেন :-) এবং ব্রিটিশরা তাদের সম্পর্কে অভিযোগ করবেɒ