একটি ফাংশন বা প্রোগ্রাম যা স্ট্রিং ইনপুট নেয় লিখুন, সম্পূর্ণরূপে বানান, ইংরেজি মাস নাম শিরোনাম ক্ষেত্রে: January
, February
, March
, ইত্যাদি (নাল / CR / LF এর অবসান ঠিক আছে, কিছু অ-আলফা অক্ষর দিয়ে বিভাজিত যদি আপনি তা চয়ন করুন) এবং হয়
দুটি ইনপুট তুলনা করে, দ্বিতীয় ইনপুট যদি প্রথমের চেয়ে বড় হয় (মাসের ক্রমে) হয় তবে সত্যবাদী মান প্রদান করে। সমান মানগুলির ফলস ফলসী মান
বা কালানুক্রমিক ক্রমে তাদের মধ্যে একটি স্বেচ্ছাসেবী ক্রম (তালিকা, সীমিত স্ট্রিং, ইত্যাদি) বাছাই করে
(চ্যালেঞ্জের কর্কট একটি পদ্ধতি / অভিব্যক্তি সংজ্ঞায়িত করছে যা সঠিক অভিধানিক ক্রম দেয় gives কিছু ভাষার একটি বা অন্যটির সাথে সংক্ষিপ্ত উত্তর থাকতে পারে)
আপনি কোনও অভ্যন্তরীণ সময় পার্সিং পদ্ধতি ব্যবহার করতে পারবেন না (যেমন strptime
) মাসের নামটি একটি সংখ্যায় বা মাসের নামের প্রাক-ক্যানড ম্যাপিংয়ে অনুবাদ করতে। স্ট্রিংগুলির বৈশিষ্ট্যগুলি নিজেরাই ব্যবহার করুন, একটি পার্সিমোনিয়াস লুক আপ টেবিল যা আপনি নির্ধারণ করেন বা কিছু চালাক।
উদাহরণ
কার্যকরী উদাহরণগুলি, যদিও প্রথমটি নিয়ম দ্বারা নিষিদ্ধ ...
import datetime
def is_later_month(a, b):
'''
Example of prohibited code because it relies on language
features about how to parse month names
'''
return datetime.strptime(a, '%B') < datetime.strptime(b, '%B')
নীচের সংস্করণগুলি ঠিক আছে, কারণ আমরা সেই তথ্যটি কোড করি
months = {
'January': 1, 'February': 2, 'March': 3,
'April': 4, 'May': 5, 'June': 6,
'July': 7, 'August': 8, 'September': 9,
'October': 10, 'November': 11, 'December': 12,
}
def is_later_month(a, b):
"""
Returns True/False when comparing two months.
"""
return months[a] < months[b]
বা আপনি একটি বাছাই ফাংশন করতে পারে
months = {'as above...'}
def sort_months(l):
"""
Sorts list and returns it. Different input and output than the above,
but equally valid. Sorting versus comparing might be shorter in your
favorite language.
"""
return sorted(l, key=lambda x: months[x])
উদাহরণ পরীক্ষা
assert is_later_month('January', 'February')
assert is_later_month('January', 'December')
assert is_later_month('November', 'December')
assert not is_later_month('July', 'July')
assert not is_later_month('October', 'September')
months
যা সমস্ত মাসের নামের তালিকা ছিল তবে আমি months[x] < months[y]
উত্তর হিসাবে বারণ করতে চাই । মাসের নামের তালিকায় আরও কিছু অদ্ভুত বৈশিষ্ট্য রয়েছে (বিভিন্ন দৈর্ঘ্য, সাধারণতা) যা এলোমেলোভাবে উত্পন্ন স্ট্রিংয়ের চেয়ে চ্যালেঞ্জটিকে সহজ / শক্ত করে তোলে।