চ্যালেঞ্জ
কোনও ডিফল্ট আই / ও ফর্ম্যাটে দুটি স্ট্রিং দেওয়া, নিম্নলিখিতটি করুন:
দ্রষ্টব্য: চ্যালেঞ্জটি প্রথম স্ট্রিংটিকে "ডেটা" হিসাবে এবং দ্বিতীয়টি "প্রোগ্রাম" হিসাবে উল্লেখ করবে।
- প্রোগ্রামটিকে অসীম স্ট্রিংয়ে পরিবর্তন করুন যা কেবল প্রোগ্রামটি অসীমভাবে পুনরাবৃত্তি হয় (যেমন
10
->1010101010...
)। চ্যালেঞ্জ এটিকে "অসীম প্রোগ্রাম" হিসাবে উল্লেখ করবে ডেটা খালি না থাকাকালীন, অসীম প্রোগ্রামটি লুপ করার সময় নিম্নলিখিতটিগুলি করুন:
ক। যদি বর্তমান কমান্ডটি "0" হয় তবে ডেটাতে বাম-সর্বাধিক বিট মুছুন। যদি ডেটা খালি থাকে তবে "0" কিছুই করবে না।
খ। যদি বর্তমান কমান্ডটি "1" হয় তবে প্রোগ্রামের পরবর্তী অক্ষরগুলি ডেটাতে যুক্ত করুন যদি ডেটাতে বাম-বিট এক হয়।
গ। যদি ডেটা এখন খালি না থাকে তবে ডেটা আউটপুট করুন।
পরীক্ষার কেস
ডেটা ইনপুটটির বাম দিক এবং প্রোগ্রামটি ডান দিক।
100, 0 --> 00, 0
1111, 1 --> 11111, 111111, 1111111, ...
10, 011 --> 0, 0, 0
1110, 011 --> 110, 1101, 11010, 1010...
মন্তব্য
- ডেটা এবং প্রোগ্রামটি কেবল 0 এবং 1 এর মধ্যে থাকবে
- থামে না এমন ডেটা / প্রোগ্রামগুলির জন্য, আপনার প্রোগ্রামটি থামার দরকার নেই।
- ইনপুটটিতে ডেটা এবং প্রোগ্রাম খালি থাকবে না।
- আপনার একাধিক ট্রেলিং এবং শীর্ষস্থানীয় নতুন লাইন থাকতে পারে
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ
- আপনি যে কোনও সুবিধাজনক আই / ও ফর্ম্যাট ব্যবহার করতে পারেন
কোড-গল্ফের মতো সর্বদা , সংক্ষিপ্ততম কোডের জয় !
100
যায় , যার সংজ্ঞা "ডেটাতে বাম-সর্বাধিক বিট মুছুন" is এর leftmost বিট না হতে ? 10
0
100
1