এই প্রশ্নটি কেভিন ক্রুইজসেনের প্রশ্নে অনুপ্রাণিত হয়েছে ।
এখন কার্পেটটি ছড়িয়ে দেওয়া হয়েছে, আমরা এটি রোল করতে চাই। আপনার কাজটি এমন একটি প্রোগ্রাম লিখতে হয় যা একটি স্ট্রিং নেয় এবং এই স্ট্রিং থেকে তৈরি একটি সর্পিল ফেরত দেয় (পাশের দিক থেকে রোলড কার্পেটের প্রতিনিধিত্ব করে)।
কার্পেটটি ঘুরিয়ে দেওয়ার এক ধাপের প্রক্রিয়াটি নিম্নলিখিত is আমার অর্থটি বোঝানোর জন্য একটি উদাহরণ রয়েছে। লক্ষ্য করুন যে উদাহরণটি আরও ভাল বোঝার জন্য আংশিকভাবে ঘূর্ণিত কার্পেট দিয়ে শুরু হয়েছে:
ac
rpet
- কার্পেটের "লেজ" থেকে "মাথা" আলাদা করুন: মাথাটি এখন পর্যন্ত গড়িয়ে গেছে, লেজটি যা রোল করা বাকি রয়েছে।
Head: ac Tail:
rp et
- মাথাটি 90 ° ঘড়ির কাঁটার দিকে ঘোরান।
Rotated head: ra Tail (unchanged):
pc et
- নতুন মাথা প্রস্থ যদি (এখানে
2
) লেজের দৈর্ঘ্যের চেয়ে কম বা সমান হয় (এখানে2
)- তারপরে, এটি লেজের উপরে রাখুন
- অন্যথায়, কার্পেটটি (যেমনটি পদক্ষেপের শুরুতে ছিল) ঘূর্ণিত হয়েছিল
New carpet: ra
pc
et
প্রক্রিয়াটি যতবার প্রয়োজন ততবার পুনরাবৃত্তি করুন।
দুটি কার্পেট কার্পেট ঘূর্ণনের সমস্ত পদক্ষেপ দেখায়:
carpet
c
arpet
ac
rpet
ra
pc
et
0123456789
0
123456789
10
23456789
21
30
456789
432
501
6789
কিছু নির্ভুলতা:
- আপনাকে সমস্ত মধ্যবর্তী পদক্ষেপগুলি দেখানোর দরকার নেই, কেবল ঘূর্ণিত গালিচা (উদাহরণস্বরূপ, যদি আপনি ফলাফলটি গণনা করার জন্য কোনও পুনরাবৃত্ত উপায় খুঁজে পান, এটি নিখুঁত)। এছাড়াও, উপরের উদাহরণগুলিতে আপনাকে কোনও শীর্ষস্থানীয় শ্বেতস্পেস মুদ্রণের দরকার নেই, আমি কেবল তাদের জিনিসগুলি সারিবদ্ধ করার জন্য দেখাই।
- ইনপুট একটি স্ট্রিং, চরের তালিকা / অ্যারে
- আউটপুট stdout বা একটি ফাইল মুদ্রিত হয়।
- ইনপুটটি দুর্দান্ত: দৈর্ঘ্য কমপক্ষে 1 চরের এবং কমপক্ষে একটি ধ্রুবক পর্যাপ্ত পরিমাণে ছোট যাতে এটি সমস্যা তৈরি করে না, তবে আপনি আপনার প্রোগ্রামে এই ধ্রুবকটি ব্যবহার করতে পারবেন না; স্ট্রিংয়ের বিষয়বস্তুটি কেবলমাত্র ভাল অক্ষর ([a-zA-Z0-9]), আপনার পছন্দটিতে এনকোডিং রয়েছে।
- এটি কোড-গল্ফ , তাই বাইট জেতে সংক্ষিপ্ত উত্তর। কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
- ডিফল্ট লুফোলগুলি নিষিদ্ধ।
- যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
- এছাড়াও, যদি আপনার মনে হয় এটির প্রয়োজন আছে তবে আপনার উত্তরের জন্য একটি ব্যাখ্যা যুক্ত করুন।
ProgrammingPuzzlesAndCodeGolf
- চূড়ান্ত লেজের দৈর্ঘ্য 1 এর চেয়ে বেশি আমাকে ট্রিপ করেছে।
print
একটি ভিতরে lambda
।