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


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.