দৈর্ঘ্যের একটি তালিকা দেওয়া এবং সেই দৈর্ঘ্যের প্রতিনিধিত্বকারী একটি স্ট্রিং, তারা কি মিলছে?


16

দৈর্ঘ্যের তালিকার প্রতিনিধিত্বকারী একটি প্যাটার্ন দেওয়া এবং সেই দৈর্ঘ্যের প্রতিনিধিত্বকারী একটি স্ট্রিং, তারা কি মিলবে?

আগ্রহীদের জন্য, এটি কোনও ননোগ্রামের সারি বা কলামটি সঠিক হতে পারে কিনা যাচাই করার সমতুল্য প্রশ্ন । যাইহোক, এই ধাঁধাগুলির সাথে অপরিচিত যারা তাদের জন্য প্রশ্নটি কম বিভ্রান্তিকর করার জন্য আমি ননোগ্রাম সম্পর্কিত সমস্ত ভাষা বাদ দিয়েছি।

ইনপুট

দুটি লাইনের ডেটা, একটি নতুন লাইনের দ্বারা পৃথক।

  1. প্রথম লাইনটি পূর্ণসংখ্যার একটি পৃথক পৃথক তালিকা হবে, উদাহরণস্বরূপ:

    3 6 1 4 6
    

    এই লাইন একটি প্যাটার্ন বর্ণনা পূর্ণসংখ্যা লিস্টে সমান আকারের ভরা স্পেস, খালি শূণ্যস্থান দ্বারা পৃথক অজানা ইতিবাচক দৈর্ঘ্য যে দ্বিতীয় লাইন মিলতে হবে। ম্যাচ করা স্ট্রিংয়ের শুরু এবং শেষে খালি জায়গা থাকতে পারে।

  2. দ্বিতীয় লাইনটি এমন একটি লাইন হবে যা লাইন একের প্যাটার্নটির সাথে মেলে বা নাও পারে। এটি সম্পূর্ণরূপে নিয়ে গঠিত #, xএবং _। এই লাইন হয় নিশ্চিত হতে অন্তত দীর্ঘ হিসাবে হিসাবে প্রথম লাইনে পূর্ণসংখ্যার যোগফল, প্লাস স্বতন্ত্র পূর্ণসংখ্যার নম্বর, বিয়োগ 1, এবং আর হতে পারে না। সুতরাং এই ক্ষেত্রে দ্বিতীয় লাইনটি কমপক্ষে (3+6+1+4+6) + (5) - 1বা 24 অক্ষর দীর্ঘ হওয়ার গ্যারান্টিযুক্ত । এখানে প্রথম বর্ণনার সাথে মেলে এমন 24 টি অক্ষরের রেখা একটি উদাহরণ:

    ###_######_#_####_######
    

প্রতীকগুলির অর্থ:

  • # এটি একটি ভরাট বাক্সকে উপস্থাপন করে
  • x এটি "খালি থাকার নিশ্চয়তা" হিসাবে চিহ্নিত একটি বক্সকে উপস্থাপন করে
  • _ এটি একটি অজানা / চিহ্নহীন বাক্সকে উপস্থাপন করে।

লক্ষ্য

ধারণাটি হ'ল:

  1. যাচাই করুন যে দ্বিতীয় লাইনটি একটি বৈধ সারি হতে পারে যা প্রথম সারির প্যাটার্নটি পূরণ করে।
    • ERRORঅজানা স্থানগুলি পূরণ করতে না পারলে #বা xপ্রথমটির সাথে মেলে না পারলে আপনাকে অবশ্যই একটি দ্ব্যর্থহীন ত্রুটি বার্তাটি প্রিন্ট করতে হবে (আপনি কীভাবে এটি করতে বেছে নিচ্ছেন তা আপনার উপর নির্ভর করে ; নীচের উদাহরণগুলি লিখুন তবে এটি 5 অক্ষরের হওয়া দরকার নেই) লাইন।
  2. মুদ্রণ করুন শূন্য সূচীবদ্ধ সূচকের পূর্ণসংখ্যার যে হয়েছে এর সম্পূর্ণরূপে স্থাপন সারিতে, স্থান সীমায়িত। অস্পষ্টতা থাকলে সূচকটি মুদ্রণ করবেন না

উদাহরণ:

Input:                    |  Output:    |  Reason:
--------------------------------------------------------------------------
3 6 1 4 6                 | 0 1 2 3 4   |  This is a complete string that 
###x######x#x####x######  |             |  matches perfectly.
--------------------------------------------------------------------------
1 2 1                     | 0 1 2       |  There is no ambiguity which filled cells 
#____xx___##__x_#         |             |  correspond to which parts of the pattern.
--------------------------------------------------------------------------
1 2 1                     |             |  I don't know whether the filled block is
____#___x                 |             |  part of the 1, 2, or 1, so output nothing.
--------------------------------------------------------------------------
1 2 1                     | ERROR       | The first unknown cell will create a block that
#_#x_#                    |             | matches either 1 1 or 3, but not 1 2.
--------------------------------------------------------------------------
1 2 1                     | 0 2         | Even though we know where all the filled cells
#____#                    |             | must be, only 0 and 2 are actually filled here.
--------------------------------------------------------------------------
1 1 1 1                   |             | There are so many possible ways to do fill this,
__#_______#____           |             | we don't know which indices are actually matched.
--------------------------------------------------------------------------
4 4                       |             | Again, we don't know WHICH 4 is matched here, 
______x####________       |             | so output nothing.
--------------------------------------------------------------------------
4 4                       | 0           | However, here, there's no room for a previous 4,
__x####________           |             | so the displayed 4 must be index 0.
--------------------------------------------------------------------------
3                         | ERROR       | We can't fit a 3 into a space before or after
__x__                     |             | the x, so this is impossible to match.
--------------------------------------------------------------------------
5 1 3                     | 0           | While we can match the 5, we don't know whether
x#####x____#____          |             | the single block matches the 1 or the 3.
--------------------------------------------------------------------------
3 2 3                     | 1           | The two has been completely placed,
____##x##____             |             | even though we don't know which it is.

নিয়মাবলী:

আপনি এমন একটি প্রোগ্রাম বা ফাংশন লিখতে পারেন যা একটি নতুন লাইন সীমানাঙ্কিত স্ট্রিং হিসাবে বা এসটিডিআইএন (বা নিকটতম বিকল্প) থেকে ইনপুট গ্রহণ করে এবং আউটপুটটিকে একটি স্পেস সীমিত স্ট্রিং হিসাবে ফেরত দেয় বা এটি স্টাডিউটে প্রিন্ট করে (বা নিকটতম বিকল্প)। আপনি আউটপুটে বিকল্পভাবে একটি একক পেছনের নতুন লাইন অন্তর্ভুক্ত করতে পারেন।

অতিরিক্তভাবে, স্ট্যান্ডার্ড লুফোলগুলি যা আর মজার নয় নিষিদ্ধ


1
এটি ননোগ্রামগুলি সমাধান করার জন্য, তাই না? এটি নংগ্রামগুলি উল্লেখ করতে সহায়তা করতে পারে যেহেতু এটি চ্যালেঞ্জটি তাদের সমাধানকারীদের জন্য তাত্ক্ষণিকভাবে উপলব্ধি করে।
xnor

@ জিমি 23013 প্রতিক্রিয়াতে সম্পাদিত।
durron597

উত্তর:


5

পার্ল, 134 বাইট

(1 টি স্যুইচ অন্তর্ভুক্ত)

perl -pe '$p.="([#_]{$_})[x_]+"for@l=split;chop$p,$_=<>;/^[x_]*$p*$(?{$h[$_-1].=$$_ for 1..@l})(?!)/;$_=@h?join$",grep{$h[$_]!~/_/}0..$#l:ERROR'

STDIN থেকে দুটি লাইন ইনপুট নেয়। প্রতিটি ইনপুট জন্য অবশ্যই পুনরায় কার্যকর করা উচিত।

ধারণাটি প্রথমে প্রদত্ত দৈর্ঘ্যের সাথে মেলে এমন সমস্ত সম্ভাব্য নিদর্শনগুলি বের করতে হবে ract উদাহরণস্বরূপ, যদি আমাদের দৈর্ঘ্য 1 2এবং প্যাটার্ন থাকে #_x_#_তবে মিলের প্যাটার্নগুলি হয় (#, _#)এবং (#, #_)। তারপরে, প্রতিটি সূচকের জন্য মিলিত প্যাটার্নগুলি একত্রিত করুন - উদাহরণস্বরূপ ফলাফলটি তালিকা (##, _##_)। এখন, তালিকার সমস্ত স্ট্রিংয়ের সূচকগুলি মুদ্রণ করুন যার কেবল '#' অক্ষর রয়েছে।

আমি পার্লের একটি রেইজেক্স থেকে এখানে সমস্ত সম্ভাব্য ম্যাচ উত্তোলনের পদ্ধতিটি পেয়েছি ।


কুল। আপনি কি একটি অবারিত সংস্করণ এবং একটি আদর্শ লিঙ্ক যুক্ত করতে পারেন দয়া করে?
durron597

অবশ্যই, আমি আমার উত্তরটির শেষে লিঙ্কটি যুক্ত করেছি।
এসভিএসডি

একটি গল্ফ কোড স্নিপেট দেখতে কতটা ভয়ঙ্কর দেখতে পারে তার সত্য উদাহরণ! কমপক্ষে আমার কাছে।
অর্জুন

1
@ আর্জুন গল্ফিং কোডটি অবলম্বন করে। সেখানে golfed কোডে সৌন্দর্য, কিন্তু আপনি ভাষাটি এটিকে লেখা আছে জানি শুধুমাত্র যদি।
svsd

1
আমি একটি নতুন উদাহরণ যুক্ত করেছি কারণ একটি পরিস্থিতিতে এখনও সমস্যার বর্ণনায় অস্পষ্ট ছিল। ভাগ্যক্রমে, আপনার প্রোগ্রাম এখনও সেই ক্ষেত্রে সঠিকভাবে কাজ করে।
durron597
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.