ধনুর্বন্ধনী ইত্যাদি ঠিক করুন


15

আপনার মিশনটি, আপনি যদি এটি গ্রহণ করতে চান তবে আপনার দেওয়া স্ট্রিং তৈরি করতে সর্বনিম্ন সংখ্যা বন্ধনী, ব্রেস এবং বন্ধনী যুক্ত করুন (কেবলমাত্র বন্ধনী, ব্রেস এবং ব্র্যাকেট সহ) সঠিক ব্রেস মিল রয়েছে। সংযুক্ত চিহ্নগুলির সংযুক্ত অংশগুলি অবশ্যই জোড়াযুক্ত ধনুর্বন্ধনীগুলির মধ্যে সর্বাধিক দূরত্ব রেখে ভেঙে যেতে হবে । আপনাকে অবশ্যই একটি সঠিক উত্তর দিতে হবে যা এই দুটি নিয়মের সাথে মেলে; আরও বন্ধনগুলি, সেগুলির উপস্থিতি থাকা উচিত, আপনি যেভাবে উপযুক্ত দেখেন তা ভাঙ্গা হতে পারে।

উদাহরণ:

input      output
                          // Empty String is a legal input
[          []             // Boring example
[()]       [()]           // Do nothing if there's nothing to be done
({{        ({{}})         // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, ({{}})
[([{])]}   {[([{}])]}     // NOT [([])]{[([])]} or similar

আপনি কোনও প্রোগ্রাম বা ফাংশন লিখতে পারেন , আপনার ফাংশনের স্ট্রিং আর্গুমেন্ট হিসাবে STDIN এর মাধ্যমে ইনপুটটি গ্রহণ করেন যা আউটপুটটিকে স্ট্রিং হিসাবে ফেরত দেয় বা এটি STDOUT (বা নিকটতম বিকল্প) এ প্রিন্ট করে। আপনি allyচ্ছিকভাবে আউটপুটে একটি একক পেছনের নতুন লাইন অন্তর্ভুক্ত করতে পারেন।

আপনি ধরে নিতে পারেন ইনপুট স্ট্রিংটিতে কেবলমাত্র নিম্নলিখিত 6 টি অক্ষর রয়েছে (বা এর অভাব): [](){} (আপনাকে সমর্থন করার দরকার নেই <>)

এটি , সংক্ষিপ্ততম প্রোগ্রামের জয়। স্ট্যান্ডার্ড লুফোলগুলি অবশ্যই নিষিদ্ধ করা হয়েছে


আপনি কি আসল শিরোনামের নীচে সরাসরি শিরোনামটি পুনরাবৃত্তি করতে চেয়েছিলেন বা ট্যাগটি সরাসরি আসল ট্যাগের উপরে পুনরাবৃত্তি করতে চান? স্যান্ডবক্স থেকে আটকানো অনুলিপি করার ক্ষেত্রে কেবল জিজ্ঞাসা করুন এবং সেগুলি সরিয়ে দিতে ভুলে গেছেন।
রেনবোল্ট

@ রেনবোল্ট প্রাক্তন নম্বর (স্যান্ডবক্স), হ্যাঁ
durron597

1
@AlexA। আমি দেখতে পাচ্ছি যে তারা কীভাবে ছোটখাটোভাবে আলাদা হয় তবে আমি মনে করি তারা পৃথক প্রশ্ন হিসাবে বিবেচিত হওয়ার চেয়েও সমান।
নিনজা বিয়ারমোনকি

যথেষ্ট ফর্সা। এটি অবশ্যই কাটা এবং শুকনো নয়, এবং অন্যেরা তা না করার সিদ্ধান্ত নিলে আমি তা বন্ধ করার চেষ্টা করব না।
নিনজা বিয়ারমনকি

আমি এটি যথেষ্ট আলাদা বিবেচনা করবে। পুনরায় খুলতে ভোট দিয়েছেন।
nderscore

উত্তর:


1

পাইথন 2 - 198

আমি কিছুটা বোধগম্যতা কিছুটা কমিয়ে আনার প্রত্যাশা করছিলাম তবে এখনই সত্যিকার অর্থে জিনিসগুলি করার বিভিন্ন উপায় পরীক্ষা করতে খুব বেশি সময় নেই।

s="()[]{}";f=s.find
def F(S):
 r=m=""
 for c in S:
    i=f(c)^1
    if i%2:m=c+m;r+=c
    else:
     for d in m:
        if d==s[i]:break
        r+=s[f(d)^1]
     else:r=s[i]+r+c
     m=m[1:]
 for c in m:r+=s[f(c)^1]
 return r

ওপিতে {[([{}])]}{[(সংলগ্ন গ্রুপগুলি সহ) উদাহরণ অন্তর্ভুক্ত করা হয়নি , তবে এই কার্যকারিতাটির প্রয়োজন হয় কিনা তা সঠিক ফলাফলকে সরিয়ে দেয়{[([{}])]}{[]}


কিভাবে 198 বাইট?
জাকারি

@ জাচারিটি, ট্যাবগুলি ( \tস্ট্যাক ওভারফ্লোতে 4 টি স্পেস হিসাবে ফর্ম্যাট করা হবে তবে আমি আসলে ট্যাব এবং স্পেসগুলি পরিবর্তিত করছি (পাইথন 2 তে ইনডেন্টেশন স্তরের জন্য আপনি এটি করতে পারেন, 3 নয়) তাই প্রথম স্তরটি [space]দ্বিতীয় [tab]তৃতীয়, [tab][space]এগিয়ে রয়েছে [tab][tab]। স্পেস সহ কোড প্রবেশ করিয়ে আমাকে এখান থেকে মোট 227 দেয় মোটেরেফ.ইন / বাইট- কাউন্টার এবং আমি 10 টি ট্যাব গুনি তাই 227 - (3 * 10) = 197. হু, আমি অনুমান করি যে আমি আসলে 1 টি পথ দিয়ে পিছনে গুনছিলাম যখন আমি পোস্ট করেছি.
কেস্যাব

Dang! এটা সত্যিই ভাল কৌশল। (লাইনের শেষে প্রবেশ করুন)। return r+[s[f(c)^1]for c in m]বাইটগুলি সংরক্ষণ করতে আপনি নীচের জন্য লুপ এবং রিটার্ন-বিবৃতি একত্রিত করতে পারেন ।
জাকারি

1

হাস্কেল, ৫১৩

ফাংশন h। পূর্ববর্তী সংস্করণ "({{)["এবং এর জন্য সঠিক উত্তর দেয় নি"({{)}}"

import Control.Monad

m '('=')'
m '['=']'
m '{'='}'
m ')'='('
m ']'='['
m '}'='{'

data B=B Char[B]|N[B]|Z B Char[B]
instance Eq B where(==)a b=q a==q b
instance Ord B where(<=)a b=q a<=q b

w(B o s)=o:(s>>=w)++[m o]
v(N k)=k>>=w
n(B _ k)=(sum$n<$>k)+1
q(N k)=sum$n<$>k

u(Z(Z g pc pk) c k)=Z g pc(pk++[B c k])
u(Z(N pk) c k)=N(pk++[B c k])
t(N k)=N k
t z=t$u z

f z c|elem c "([{"=[Z z c[]]
f z@(Z p o k) c|m c==o=[u z]|2>1=(u$Z(Z p o [])(m c)k):f(u z)c
f (N k)c=[Z(N[])(m c)k]

h s=v.minimum$t<$>foldM f(N [])s
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.