টিনিবিএফ থেকে ব্রেইনফ *** রূপান্তরকারী


9

টিনিবিএফ রূপান্তরকারীটির কাছে আমাদের কাছে ব্রেইনফ রয়েছে * তবে অন্যভাবে নয়, তাই এখানে একটি।

নিয়মাবলী:

  • আপনার দোভাষীকে অবশ্যই একটি লাইনে একটি বৈধ টিনিবিএফ প্রোগ্রাম গ্রহণ করতে হবে এবং এটি অবশ্যই একটি ব্রাইনএফ *** প্রোগ্রামকে আউটপুট দিতে হবে, এক লাইনে, itesচ্ছিক ট্রেলিং হোয়াইটস্পেস / নিউলাইন সহ। কোনও নেতৃস্থানীয় সাদা স্থান অনুমোদিত নয়
  • ইনপুটটিতে চারটি টিনিবিএফ অক্ষরের কোনও নয় এমন অক্ষর থাকতে পারে বা নাও থাকতে পারে। যদি তা হয় তবে আপনাকে অবশ্যই এই সমস্ত অক্ষর একই দাগে মুদ্রণ করতে হবে।
  • 1 এপ্রিল একটি উত্তর গ্রহণ করা হবে (রসিকতা নয়), আমি ব্যবহার করব এমন কিছু অস্পষ্ট মানদণ্ডের ভিত্তিতে (জে কে;) আমি নীচের নিয়মগুলি দ্বারা প্রতারণা করে না এমন সংক্ষিপ্ততম প্রোগ্রামটি গ্রহণ করব)
  • 0-বাইট বা 1-বাইট সমাধান নেই, কারণ এটি মজাদার নষ্ট করে দেয় যদি আপনি কেবল এই উদ্দেশ্যে প্রোগ্রামিং ভাষা তৈরি করেন (বা আছে))

পরীক্ষার কেস


ইনপুট 1: +++++>+++++=>=|>>+=>>+|=>|>+=>+|(গণনা 5 (বাইট 1) + 5 (বাইট 2) = 10 (বাইট 3))
আউটপুট 1:+++++>+++++<[>>+<<-]>[>+<-]

ইনপুট 2: +++>++++Hi+++:P+=>=|>|>+>+=>>&&+|=>>|=>>=+!!>>=+|>>>+|(গণনা 3 (বাইট 1) * 8 (বাইট 2) = 24 (বাইট 3)) আউটপুট 2:+++>++++Hi+++:P+<[>[>+>+<<&&-]>>[<<+!!>>-]<<<-]


I / O আদেশগুলি কি কখনও থাকবে?
— lirtosiast

না, কারণ টিনিবিএফের আইও কমান্ড নেই।
— হাইপার নিউট্রিনো

এটা ভুল; ==ব্রেনফাক এর .।
— ডেনিস

উত্তর:


1

পাইথন 2, 106 বাইট

a=0
r=''
for c in input():a=[a,~a][c=='='];r+={'+':'+-','>':'><','|':'[]'}.get(c,c)[a%-2]*(c!='=')
print r

এখানে পাওয়া হিসাবে TinyBF স্পেসিফিকেশন কার্যকর করে । এটি অনলাইনে চেষ্টা করুন । @ ডিকারের উত্তর থেকে কৌশলগুলি ব্যবহার করে উন্নতি করা হয়েছিল । উদ্ধৃত স্ট্রিং ইনপুট প্রয়োজন।


এটি আমার পরীক্ষার সমস্ত ক্ষেত্রে কাজ করে! ভাল করেছ.
— হাইপারনিউট্রিনো

এর সাহায্যে 5 টি বাইট সংরক্ষণ করতে পারবেন r+=b.get(c,c+c)[a]*(c!='=')। আরও 3 টি বাঁচাতে আপনি লুপের জন্য একটি লাইনও তৈরি করতে পারেন। আপনি আরও 4 টি সঞ্চয় করার জন্য ডিকটি ইনলাইন করতে পারেন। ইনলাইনিং input()আরেকটি 4.
— মরগান থ্র্যাপ

এছাড়াও, আপনাকে হয় ব্যবহার করতে হবে raw_inputবা পাইথন 3 এ স্যুইচ করতে হবে এবং এর জন্য বাইট পেনাল্টি নিতে হবে print। ঠিক এখন আমি পেতে SyntaxError: invalid syntax।
— মরগান থ্রাপ

@ মার্গো আমি আপনার উত্তরটি আপনার উপর ভিত্তি করে তৈরি করেছি তবে আমার ধারণা এটি ঠিক আছে কারণ পরিবর্তনগুলি ভারী, আপনি আমাকে এটি সরিয়ে দিতে চান কিনা তা আমাকে জানান
— ডিকা

@ মরগানথ্রাপ ইনপুটটি উদ্ধৃত হয়েছে, সুতরাং এটি 2 এর জন্য কাজ করে quot উদ্ধৃত স্ট্রিং ইনপুট গ্রহণের জন্য একটি মেটা পোস্টের জন্য অনুমোদিত যা আমি এখনই খুঁজে পাচ্ছি না কারণ আমি মোবাইলে আছি on
— মেগো

2

পাইথন 3, 97 বাইট

এই লিপিটি @ মেগো এর উত্তরের উপর ভিত্তি করে

a=0
for c in input():a-=c=='=';print({'+':'+-','>':'><','|':'[]'}.get(c,c)[a%-2]*(c!='='),end='')

3
আমি মনে করি এটি মেগোর জবাবের সাথে খুব মিল এবং একটি মন্তব্যে অপ্টিমাইজেশন হিসাবে পরামর্শ দেওয়া উচিত ছিল।
— mbomb007

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