কল্পনা করুন যে আমার প্রতিটি বাড়িতে একটি পূর্ণসংখ্যার নম্বর দেওয়া হোমওয়ার্কের সমস্যাগুলি (!) রয়েছে have
ম্যাথ প্রব্লেম নোটেশন সমস্যা স্পেসিফায়ার ব্যবহার করে সমস্যার সাবসেটগুলি বর্ণনা করার জন্য একটি স্বরলিপি।
এমপিএন এক্সপ্রেশনটিতে বেশ কয়েকটি জিনিস থাকতে পারে:
- একক মান। এই সংখ্যা ধারণকারী একটি সেট প্রতিনিধিত্ব করে:
99 -> {99}
। - একটি সাধারণ পরিসীমা। এই পরিসীমা প্রথম থেকে শেষ পর্যন্ত সমস্ত নম্বর ধারণকারী সেট প্রতিনিধিত্ব করে:
10~13 -> {10, 11, 12, 13}
। বাম বা ডান দিকের অনুপস্থিত হয়, তারপর তারা যথাক্রমে -Infinity বা অসীম গণ্য করা হয়:~10 -> {x|x ≤ 10}
;~ -> ℤ
। - একটি এমপিএন এক্সপ্রেশন, তারপরে "এড়িয়ে যান" এবং অন্য এমপিএন এক্সপ্রেশন। এই দুটি সেট পার্থক্য প্রতিনিধিত্ব করে:
10~20 skip 12~14 -> {10, 11, 15, 16, 17, 18, 19, 20}
। - কমা দ্বারা পৃথক দুটি এমপিএন এক্সপ্রেশন separated এই দুটি সেট ইউনিয়ন প্রতিনিধিত্ব করে:
1,8~9,15~17 -> {1,8,9,15,16,17}
।
"এড়িয়ে যান" অপারেটরটি কমা অপারেটরের চেয়ে শক্ত করে বাঁধে, সুতরাং 16,110~112 skip 16 -> {16,110,111,112}
(16 টি সেটটিতে অন্তর্ভুক্ত নয় {110,111,112}
, তাই 16 বাদে কিছু যায় আসে না))
আপনি অসম্পূর্ণতার জন্য প্রথম বন্ধনীতে এক্সপ্রেশনও রাখতে পারেন:
1~9 skip (2~8 skip (3~7 skip (4~6 skip 5))) -> {1,3,5,7,9}
এটি ব্যাকরণ:
<expr> ::= "(" <expr> ")"
|| <number>
|| [<number>] "~" [<number>]
|| <expr> "skip" <expr>
|| <expr> "," <expr>
আপনার কাজটি এমন একটি প্রোগ্রাম লিখতে হবে যাতে দুটি ইনপুট লাগে:
- একটি এমপিএন এক্সপ্রেশন
- একটি সংখ্যা
এবং MPN এক্সপ্রেশন দ্বারা বর্ণিত সেটে সমস্যাটি রয়েছে কিনা তার উপর নির্ভর করে কিছু সত্যবাদী বা মিথ্যা মান আউটপুট করে।
বিশেষ উল্লেখ
- আপনি ধরে নিতে পারেন যে প্রথম ইনপুটটি একটি সুগঠিত এমপিএন এক্সপ্রেশন (যেমন এটি উপরের ব্যাকরণের সাথে মেলে)
- এমপিএন প্রকাশের সংখ্যাগুলি সর্বদা পূর্ণসংখ্যার হয়। এগুলি নেতিবাচক বা শূন্য হতে পারে তবে এগুলির কোনও ভগ্নাংশই থাকতে পারে না।
- এটি কোড-গল্ফ , তাই সংক্ষিপ্ততম বৈধ জমা (বাইটগুলিতে পরিমাপ করা) জয়ী।
- আপনি চাইলে
~
এবং এর জন্য বিভিন্ন অক্ষর ব্যবহার,
করতে পারেন।
পরীক্ষার কেস
10~20 14 -> True
10~20 20 -> True
10~20 skip 14~18 17 -> False
~ skip 6 8 -> True
16,17 skip 16 16 -> True
(16,17) skip 16 16 -> False
~10,5~ 8 -> True
~10,5~ 4 -> True
6 skip 6,~ 6 -> True
~
এবং ,
তবে নয় skip
।
6 skip 6,~
যা আমি বিশ্বাস করি যে আমি সঠিক ব্যাখ্যা করেছি। এখনও পর্যন্ত অন্য 2 টি উত্তর এটি সন্তুষ্ট করে না (আবার ধরে নেওয়া, আমি সঠিকভাবে ব্যাখ্যা করছি)। আমি যদি ভুল বুঝে থাকি তবে দয়া করে এটি সংশোধন করুন এবং স্পষ্ট করুন, তবে আমার বোঝার দিক থেকে এটি যে কোনও কিছুর সাথে মিলিত হওয়া উচিত (এটি এমন একটি সংঘের মিল যা কোনও কিছুর সাথে মেলে না যেটি কোনও কিছুর সাথে মেলে না)। এর আগে আমি এই ধরণের কেসগুলির বিষয়ে কথা বলছিলাম যা আমাদের সমাধানগুলি পরীক্ষা করার সময় আমি অনেকটা সাহায্য করতে পারি বলে মনে করি।