मान लीजिए हमारे पास लोअरकेस स्ट्रिंग्स की एक सूची है, हमें सबसे लंबा सामान्य उपसर्ग ढूंढना है।
उदाहरण के लिए, यदि इनपुट ["antivirus", "anticlockwise", "antigravity"] है, तो आउटपुट "anti" होगा।
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- words सूची को वर्णमाला क्रम में क्रमबद्ध करें
- prefix := एक नई सूची
- flag := 0
- i को 0 से words[0] के आकार तक के लिए करें:
- prefix में words[0][i] जोड़ें
- words में प्रत्येक j के लिए करें:
- यदि j[i], prefix के अंतिम तत्व के बराबर नहीं है, तो:
- prefix से अंतिम तत्व हटाएं
- flag := 1
- लूप से बाहर निकलें
- यदि j[i], prefix के अंतिम तत्व के बराबर नहीं है, तो:
- यदि flag == 1, तो लूप से बाहर निकलें
- prefix सरणी में मौजूद सभी तत्वों को जोड़कर स्ट्रिंग वापस करें
उदाहरण
class Solution:
def solve(self, words):
words.sort()
prefix = []
flag = 0
for i in range(len(words[0])):
prefix.append(words[0][i])
for j in words:
if j[i] != prefix[-1]:
prefix.pop()
flag = 1
break
if flag == 1:
break
return ''.join(prefix)
ob = Solution()
words = ["antivirus", "anticlockwise", "antigravity"]
print(ob.solve(words))
इनपुट
["antivirus", "anticlockwise", "antigravity"]
आउटपुट
anti