আমি শুনেছি যে আপনার কোডটি যদি বিপরীতে ইন্ডেন্ট করে তবে দ্রুত চলতে পারে, যাতে সংকলকটি "শাখাগুলি" এর একেবারে নীচ থেকে গাছের নকশার নকশার মতো প্রক্রিয়া করতে পারে। এটি সাহায্য করে কারণ মাধ্যাকর্ষণটি আপনার কোডটি সংকলিত হতে সময় নেয় এবং ডেটা কাঠামোর দক্ষতা উন্নত হয়। জাভা স্ক্রিপ্টিং এ এখানে একটি উদাহরণ দেওয়া আছে:
function fib(n) {
var a = 1, b = 1;
while (--n > 0) {
var tmp = a;
a = b;
b += tmp;
if (a === Infinity) {
return "Error!";
}
}
return a;
}
তবে কোনও কারণে নোটপ্যাডের স্বয়ংক্রিয়ভাবে এটি করার কোনও সেটিংস নেই, তাই আমার কাছে এটি করার জন্য আমার একটি প্রোগ্রামের প্রয়োজন।
বিবরণ
সাবমিশনগুলিকে ইনপুট হিসাবে একটি কোড স্নিপেট নিতে হবে, ইনডেন্টেশনটি বিপরীত করতে হবে এবং ফলাফলের কোডটি আউটপুট করতে হবে।
এটি নিম্নলিখিত পদ্ধতি দ্বারা করা হয়:
কোডটিকে লাইনে ভাগ করুন। প্রতিটি লাইন শূন্য বা আরও বেশি স্পেস দিয়ে শুরু হবে (কোনও ট্যাব থাকবে না)।
কোডে সমস্ত অনন্য ইন্ডেন্টেশন স্তরগুলি সন্ধান করুন। উদাহরণস্বরূপ, উপরের উদাহরণের জন্য, এটি হবে
0 4 8 12
ইন্ডেন্টেশন স্তরের এই তালিকার ক্রমটিকে বিপরীত করুন এবং বিপরীত তালিকাটিকে মূল তালিকায় মানচিত্র করুন। এটি কথায় ব্যাখ্যা করা শক্ত, তবে উদাহরণস্বরূপ, এটির মতো লাগবে
0 — 12 4 — 8 8 — 4 12 — 0
এই কোডিংটি মূল কোডটিতে প্রয়োগ করুন। উদাহরণস্বরূপ, 0-স্পেস-ইন্ডেন্টেশন সহ একটি লাইন 12 স্পেস দ্বারা ইন্টেন্টেড হবে, 4 স্পেস 8 স্পেস ইত্যাদি হয়ে যাবে etc.
ইনপুট আউটপুট
আপনি চাইলে ইনপুট এবং আউটপুট সরবরাহ করা যেতে পারে (STDIN / STDOUT, ফাংশন প্যারামিটার / রিটার্ন মান ইত্যাদি); যদি আপনার ভাষা মাল্টলাইন ইনপুট সমর্থন করে না (বা আপনি কেবল চান না), আপনি |
পরিবর্তে লাইনগুলি পৃথক করতে অক্ষরটি ব্যবহার করতে পারেন ।
ইনপুটটিতে কেবল প্রিন্টযোগ্য এএসসিআইআই + নিউলাইন থাকবে, এবং এতে খালি লাইন থাকবে না।
পরীক্ষার মামলা
ইনপুট:
function fib(n) {
var a = 1, b = 1;
while (--n > 0) {
var tmp = a;
a = b;
b += tmp;
if (a === Infinity) {
return "Error!";
}
}
return a;
}
আউটপুট: উপরের উদাহরণ কোড।
ইনপুট:
a
b
c
d
e
f
g
h
আউটপুট:
a
b
c
d
e
f
g
h
ইনপুট:
1
2
3
2
1
আউটপুট:
1
2
3
2
1
ইনপুট:
foo
আউটপুট:
foo