मान लीजिए हमारे पास एक सरणी में स्ट्रिंग्स का एक समूह है। हमें सरणी में स्ट्रिंग्स के बीच सबसे लंबा सामान्य उपसर्ग ढूंढना है। यहां हम मान लेंगे कि सभी स्ट्रिंग्स लोअरकेस स्ट्रिंग्स हैं। और यदि कोई सामान्य उपसर्ग नहीं है, तो "" वापस करें।
इसलिए यदि स्ट्रिंग्स की सरणी ["school", "schedule","scotland"] जैसी है, तो सबसे लंबा सामान्य उपसर्ग "sc" है क्योंकि यह इन सभी स्ट्रिंग्स में मौजूद है।
इसे हल करने के लिए, हम पहली स्ट्रिंग को curr के रूप में लेंगे, अब सरणी से प्रत्येक स्ट्रिंग लें और उन्हें वर्ण दर वर्ण पढ़ें, और curr और ली गई स्ट्रिंग के बीच वर्णों की एक-एक करके जांच करें। यदि वे समान हैं तो अगले वर्ण के लिए जाएं, अन्यथा लूप तोड़ें, और curr को उस उपस्ट्रिंग के रूप में अपडेट करें जो मेल खाती है।
बेहतर समझ के लिए कार्यान्वयन देखें:
उदाहरण (पायथन)
class Solution(object):
def longestCommonPrefix(self, strs):
"""
:type strs: List[str]
:rtype: str
"""
if len(strs) == 0:
return ""
current = strs[0]
for i in range(1,len(strs)):
temp = ""
if len(current) == 0:
break
for j in range(len(strs[i])):
if j<len(current) and current[j] == strs[i][j]:
temp+=current[j]
else:
break
current = temp
return current
input_list = ["school","schedule","scotland"]
ob1 = Solution()
print(ob1.longestCommonPrefix(input_list))
इनपुट
["school","schedule","scotland"]
आउटपुट
"sc"