मान लीजिए हमारे पास एक लोअरकेस स्ट्रिंग s है, हमें जांचना है कि क्या s के वर्णों का कोई उपअनुक्रम (subsequence) चुनना संभव है जैसे कि:
- किन्हीं दो क्रमागत वर्णों के सूचकांकों का अंतर समान हो
- वर्ण मिलकर "programmingquestion" 스트িং তৈরি করে
यदि इनपुट "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn" जैसा है, तो आउटपुट होगा True
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- p := उन सूचकांकों की सरणी जहां 'p' मौजूद है
- r := उन सूचकांकों की सरणी जहां 'r' मौजूद है
- p में प्रत्येक j के लिए, करें:
- r में प्रत्येक k के लिए, करें:
- यदि k > j, तो
- यदि s के उपस्ट्रिंग (सूचकांक j से अंत तक, k-j चरित्र छोड़कर) में "programmingquestion" है, तो
- True लौटाएं
- यदि s के उपस्ट्रिंग (सूचकांक j से अंत तक, k-j चरित्र छोड़कर) में "programmingquestion" है, तो
- यदि k > j, तो
- r में प्रत्येक k के लिए, करें:
- False लौटाएं
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
उदाहरण
class Solution:
def solve(self, s):
p = [i for i, c in enumerate(s) if c == "p"]
r = [i for i, c in enumerate(s) if c == "r"]
for j in p:
for k in r:
if k > j:
if "programmingquestion" in s[j:len(s):k-j]:
return True
return False
ob = Solution()
s = "pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
print(ob.solve(s))
इनपुट
"pzrzozgzrzazmzmziznzgzqzuzezsztzizozn"
आउटपुट
True