আমি এসোলেংগুলি ব্রাউজ করছিলাম এবং এই ভাষাটি অনুসরণ করছিলাম: https://github.com/catseye/Quylthulg ।
এই ভাষা সম্পর্কে একটি আকর্ষণীয় বিষয় হ'ল এটি উপসর্গ, পোস্টফিক্স বা ইনফিক্স ব্যবহার করে না, এটি তিনটি ব্যবহার করে এটি "পানফিক্স" স্বরলিপি বলে।
এখানে একটি উদাহরণ। স্বাভাবিক পোতা প্রতিনিধিত্ব করতে 1+2
panfix, এটা হয়ে: +1+2+
। অপারেটরগুলি আগে, মাঝখানে এবং অপারেন্ডগুলির পরে উভয়ই কেমন তা লক্ষ্য করুন। অন্য একটি উদাহরণ (1+2)*3
। এটি হয়ে যায় *+1+2+*3*
। *
অপারেশনগুলির ক্ষেত্রে তিনটি স্থানে কীভাবে রয়েছে তা আবার লক্ষ্য করুন Notice+1+2+
এবং 3
।
চ্যালেঞ্জ
আপনি যেমন অনুমান করতে পারেন, এই চ্যালেঞ্জটির আপনার কাজটি হ'ল ইনফিক্স থেকে পানফিক্সে রূপান্তর করা।
কয়েকটি স্পষ্টতা:
- আপনাকে কেবলমাত্র চারটি বুনিয়াদি ক্রিয়াকলাপ মোকাবেলা করতে হবে:
+-*/
- আপনাকে কেবল বাইনারিগুলির অ্যানারি সংস্করণগুলির সাথে ডিল করতে হবে না
- আপনাকে প্রথম বন্ধনী সামলাতে হবে
*/
তখনকার সাধারণ অগ্রাধিকার নিয়মগুলি অনুমান করুন+-
এবং তাদের সকলের জন্য বাম সহযোগিতা করুন।- সংখ্যাগুলি নন-নেগেটিভ পূর্ণসংখ্যা হবে
- ইনপুট এবং আউটপুট উভয় ক্ষেত্রে আপনার বিকল্প থাকতে পারে
পরীক্ষার মামলা
1+2 -> +1+2+
1+2+3 -> ++1+2++3+
(1+2)*3 -> *+1+2+*3*
10/2*5 -> */10/2/*5*
(5+3)*((9+18)/4-1) -> *+5+3+*-/+9+18+/4/-1-*
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোড !
S.split``
হওয়া উচিত[...S]
, যদিও এটি/\d+|./g
আপ-ফ্রন্টে মিলতে এবং পরিবর্তে এটির পক্ষে কাজ করতে সহায়তা করতে পারে ।