এটি 2016 এআরএমএল প্রতিযোগিতা টিম সমস্যা # 6 এর অংশ দ্বারা অনুপ্রাণিত হয়েছিল।
এখানে চ্যালেঞ্জ:
আপনাকে একটি "ওয়াইল্ডকার্ড সিকোয়েন্স" দেওয়া হয়েছে, যা অঙ্কগুলির ক্রম এবং অন্য একটি চরিত্র। একটি স্ট্রিং নিম্নলিখিত উইন্ডোকার্ডের সাথে এই ওয়াইল্ডকার্ড ক্রমের সাথে মেলে:
w = wildcard
s = string
# s matches w iff
for all 0 >= i > wildcard.length, w[i] == '?' or s[i] == w[i]
কোথায় '?' আপনার পছন্দ একটি চরিত্র।
রেজেক্সের ক্ষেত্রে, ঠিক কী '?'হতে হবে তা কল্পনা করুন '.'।
চ্যালেঞ্জটি হ'ল সমস্ত বর্গ সংখ্যা (প্রয়োজনীয়তা 1 মিলিয়ন পর্যন্ত) যার দশমিক স্ট্রিং উপস্থাপনাগুলি এই ওয়াইল্ডকার্ড ক্রমের সাথে মেলে। "ওয়াইল্ডকার্ড চরিত্র" আপনার পছন্দের কোনও ASCII চরিত্র হতে পারে, যতক্ষণ না এটি অঙ্ক নয়, স্পষ্টতই।
উদাহরণস্বরূপ, 4096ম্যাচগুলি 4**6এবং 4*9*তবে 4114কোনওটির সাথে মেলে না।
ইনপুট
রেজেক্সের সাথে মিলে যাওয়া ক্রম হিসাবে ইনপুট দেওয়া হবে [0-9?]+। এটি স্ট্রিং, একটি অক্ষরের অ্যারে বা ASCII- তে অক্ষরের একটি বাইট অ্যারে হতে পারে।
আউটপুট
আউটপুট হ'ল আপনি যা চান তা-বাদ দেওয়া তালিকা / সেট / সংখ্যার অ্যারে যা নিখুঁত স্কোয়ার এবং ওয়াইল্ডকার্ড ক্রমের সাথে মেলে।
বৈধ ইনপুটগুলির উদাহরণ:
1234567*90
1234567?90
1234567u90
['1', '2', '3', '4', '5', '6', '7', '*', '9', '0']
[49, 50, 51, 52, 53, 54, 55, 42, 57, 48]
[1, 2, 3, 4, 5, 6, 7, '*', 9, 0]
বৈধ আউটপুটগুলির উদাহরণ:
[1, 4, 9]
1 4 9
1, 4, 9
1-4-9
প্রভৃতি
বিশেষ উল্লেখ
- নির্দিষ্ট পরিসরে স্কোয়ারের তালিকা খুঁজে পাওয়ার জন্য আপনি বিল্টিনগুলি ব্যবহার করতে পারবেন না
- স্ট্যান্ডার্ড লুফোলস প্রয়োগ করুন
- আপনি অবশ্যই 1 000 000 (1 মিলিয়ন) অবধি পরিচালনা করতে সক্ষম হবেন
- যদি ইনপুট সরবরাহ করা হয় তবে
1******এটি মুদ্রণ করা ঠিক[1000000]। এটি প্রিন্ট করাও ঠিক[1000000, 1002001, 1004004, 1006009, 1008016, 1010025, ...] - ওয়াইল্ডকার্ড ক্রমগুলি কখনই ওয়াইল্ডকার্ড চরিত্রের সাথে শুরু হবে না; অর্থাৎ, তারা সর্বদা একই দৈর্ঘ্যের স্ট্রিংগুলির সাথে মিলবে।
পরীক্ষার কেস
4**6 -> [4096, 4356]
1**1 -> [1521, 1681]
1** -> [100, 121, 144, 169, 196]
9****9 -> [908209, 915849, 927369, 935089, 946729, 954529, 966289, 974169, 986049, 994009]
9*9*** -> [919681, 929296]
1**0* -> [10000, 10201, 10404, 10609, 12100, 14400, 16900, 19600]
9***4 -> [91204, 94864, 97344]
জয়লাভ
14 ই ফেব্রুয়ারির মধ্যে সংক্ষিপ্ত (বৈধ) (কার্যকরী) জমা দেওয়া, টাইয়ের বিরতিতে প্রথমতম জমা দিয়ে বিজয়ী।
25একটি বৈধ উত্তর ***কিন্তু জন্য নয় *2*?
{4, "w", "w", 6}(বা আরও ভাল, {4, w, w, 6}), যেমন অক্ষরের অ্যারের পরিবর্তে হতে পারে {"4", "w", "w", "6"}?
?উত্তরদাতার দ্বারা বেছে নেওয়া হবে তা নির্দিষ্ট করা হবে।