मान लीजिए हमारे पास एक स्ट्रिंग है जिसमें तीन प्रकार, आर, बी, और डॉट (।) के अक्षर हैं। यहां R हमारी वर्तमान स्थिति के लिए है, B एक अवरुद्ध स्थिति के लिए है, और डॉट (।) एक खाली स्थिति के लिए है। अब, एक चरण में, हम अपनी वर्तमान स्थिति के लिए किसी भी आसन्न स्थिति में जा सकते हैं, जब तक कि यह वैध (खाली) है ) हमें यह जांचना होगा कि हम या तो सबसे बाईं या सबसे दाईं स्थिति तक पहुँच सकते हैं।
इसलिए, यदि इनपुट s ="............R.....BBBB....." जैसा है, तो आउटपुट सही होगा, क्योंकि R सबसे बाईं स्थिति तक पहुंच सकता है, क्योंकि कोई अवरोध नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- r_pos :=s में 'R' की अनुक्रमणिका
- जब 'बी' एस में मौजूद नहीं है [इंडेक्स 0 से r_pos-1] या 'बी' एस में नहीं है [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