समस्या विवरण
एक स्ट्रिंग astro_dict दी गई है जो प्राचीन अंतरिक्ष यात्रियों के शब्दकोश का आंशिक लेक्सिकोग्राफिक ऑर्डर दर्शाती है। एक स्ट्रिंग s दी गई है, जांचें कि क्या यह इस शब्दकोश के अनुसार लेक्सिकोग्राफिकली सॉर्टेड है।
उदाहरण
इनपुट: astro_dict = "bdc", s = "bbbb h ddd i cccc"
आउटपुट: True
व्याख्या: ऑर्डर b < d < c है। s में b's आते हैं, फिर d's, फिर c's — सही क्रम में।
एल्गोरिदम
i = 0(डिक्शनरी में वर्तमान स्थिति)sके प्रत्येक कैरेक्टरcके लिए:- यदि
cडिक्शनरी में है:- जब तक
i < len(astro_dict)औरastro_dict[i] != c:i++ - यदि
i >= lenयाastro_dict[i] != c:False(गलत क्रम)
- जब तक
- यदि
Trueवापस करें
पायथन कार्यान्वयन
class Solution:
def solve(self, astro_dict, s):
l = len(astro_dict)
if l == 0:
return True
i = 0
for c in s:
if c in astro_dict:
while i < l and astro_dict[i] != c:
i += 1
if i >= l or astro_dict[i] != c:
return False
return True
ob = Solution()
print(ob.solve("bdc", "bbbb h ddd i cccc"))
इनपुट
"bdc", "bbbb h ddd i cccc"
आउटपुट
True