ধরুন আমাদের একটি স্ট্রিং আছে যাতে তিন ধরনের অক্ষর রয়েছে, R, B এবং ডট(.)। এখানে R মানে আমাদের বর্তমান অবস্থান, B মানে একটি অবরুদ্ধ অবস্থান, এবং ডট(.) একটি খালি অবস্থানকে বোঝায়। এখন, এক ধাপে, আমরা আমাদের বর্তমান অবস্থানের যে কোনো সন্নিহিত অবস্থানে যেতে পারি, যতক্ষণ না এটি বৈধ (খালি) ) আমরা বাম অবস্থানে বা ডানদিকের অবস্থানে পৌঁছাতে পারি কিনা তা পরীক্ষা করতে হবে।
সুতরাং, যদি ইনপুটটি s ="........R.....BBBB....." এর মত হয়, তাহলে আউটপুট হবে True, কারণ R বাম অবস্থানে পৌঁছাতে পারে, কারণ কোন ব্লক নেই।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- r_pos :=s তে 'R' এর সূচক
- যখন 'B' s [সূচী 0 থেকে r_pos-1] তে উপস্থিত না থাকে বা 'B' s [fromindex r_pos থেকে শেষ পর্যন্ত] না থাকে তখন সত্য ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, s): r_pos = s.find('R') return not 'B' in s[:r_pos] or not 'B' in s[r_pos:] ob = Solution() s = "...........R.....BBBB....." print(ob.solve(s))
ইনপুট
"...........R.....BBBB....."
আউটপুট
True