ফর্ম্যাট পদ্ধতিটি উল্টে দিন।
Format
স্ট্রিং বর্গ (অথবা equivallent যেমন পদ্ধতি sprintf
) বেশির ভাগ ভাষায় পাওয়া যায়। এটি মূলত একটি "ফর্ম্যাট" স্ট্রিং নেয় যা কিছু অতিরিক্ত বিন্যাস সহ স্থানধারক এবং সেই স্থানধারকগুলির পরিবর্তে শূন্য বা আরও মান সন্নিবেশ করতে পারে।
আপনার কাজটি আপনার পছন্দের ভাষায় বিপরীত ফাংশন বাস্তবায়ন করা।
এপিআই
পদ্ধতির নামটি হয় format1
বা হয় deformat
।
ইনপুট : 1 ম প্যারামিটারটি মূল ফর্ম্যাট পদ্ধতির মতো "ফর্ম্যাট" স্ট্রিং হবে। ২ য় প্যারামিটারটি বিশদযুক্ত স্ট্রিং হবে (নীচের উদাহরণগুলি দেখুন)। অন্য কোনও পরামিতি প্রয়োজন বা অনুমোদিত নয় allowed
আউটপুট : মানগুলির একটি অ্যারে (বা আপনার পছন্দের পছন্দটির সমতুল্য) যা ফর্ম্যাটটিতে স্থানধারকগুলির সাথে যথাযথভাবে নিষ্কাশিত হয়েছিল।
প্লেসহোল্ডার হয় {0}
, {1}
, {2}
, ইত্যাদি
খারাপ ফর্ম্যাটের ক্ষেত্রে আপনি একটি ত্রুটি নিক্ষেপ করতে পারেন, বা আপনি যা পছন্দ করেন তা ফিরিয়ে দিতে পারেন।
অবৈধ ইনপুট ক্ষেত্রে, আপনি একটি ত্রুটি নিক্ষেপ করতে পারেন, বা আপনার পছন্দসই কিছু ফিরিয়ে দিতে পারেন। অবৈধ ইনপুট যেমন যে উদাহরণস্বরূপ একই বিন্যাসে স্ট্রিং ব্যবহার করে String.Format দ্বারা উত্পন্ন করা যাবে না, হল: '{0}{0}', 'AAB'
।
উদাহরণ
deformat('{0} {1}', 'hello world') => ['hello', 'world']
deformat('http{0}://', 'https://') => ['s']
deformat('http{0}://', 'http://') => [''] // array of one item which is an empty string
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB']
অস্পষ্টতা
অস্পষ্টতার ক্ষেত্রে আপনি কোনও উপযুক্ত উত্তর দিতে পারেন। উদাহরণ স্বরূপ:
deformat('{0} {1}', 'Edsger W. Dijkstra')
// both ['Edsger', 'W. Dijkstra'] and ['Edsger W.', 'Dijkstra'] are applicable.
আরও কিছু বিধি
- এটিকে আরও সহজ করার জন্য, প্রকৃত বিন্যাসকে সমর্থন করার দরকার নেই। শীর্ষস্থানীয় শূন্যগুলি, দশমিক পয়েন্ট বা রাউন্ডিং সম্পর্কিত সমস্ত বিষয় আপনি ভুলে যেতে পারেন। স্ট্রিং হিসাবে মানগুলি উত্পন্ন করুন।
- এটিকে তুচ্ছ হিসাবে তৈরি করার জন্য, নিয়মিত প্রকাশের অনুমতি নেই ।
- আপনাকে ইনপুটগুলিতে কোঁকড়া ধনুর্বন্ধনী যত্ন নেওয়ার দরকার নেই (যেমন 2 য় ইনপুট প্যারামিটারে কোনও
{
গুলি বা}
গুলি থাকবে না )।
জয়লাভ
এটি কোড-গল্ফ ! ("এটি স্পার্টা!" হিসাবে পড়া উচিত) স্বল্পতম দৈর্ঘ্যের জয়যুক্ত সঠিক ফাংশনটি। স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
['', 'AAAA']
, ['A', 'AA']
,['AA', '']
deformat('{0}{1}{0}', 'ABBA') => ['', 'ABBA']
? যদি তা হয় তবে প্রতিটি স্ট্রিং কমপক্ষে দুবার উপস্থিত না হওয়া পর্যন্ত একটি সস্তা সমাধান রয়েছে।
deformat('{0}_{1}_{0}', 'A_BB_A')
?
deformat('{0}{1}{0}', 'ABBA') => ['A', 'BB']
, আমাদের পরিবর্তে যদি দেওয়া হয় তবেdeformat('{0}{1}{0}', 'AAAA')
কী হবে ?