मान लीजिए कि हमारे पास एक सरणी में स्ट्रिंग्स का एक सेट है। हमें सरणी में स्ट्रिंग के बीच सबसे लंबा सामान्य उपसर्ग ढूंढना है। यहां हम मानेंगे कि सभी स्ट्रिंग्स लोअर केस स्ट्रिंग्स हैं। और अगर कोई सामान्य उपसर्ग नहीं है, तो "" वापस करें।
तो अगर एक स्ट्रिंग की सरणी ["स्कूल", "शेड्यूल", "स्कॉटलैंड"] की तरह है, तो सबसे लंबा सामान्य उपसर्ग "एससी" है क्योंकि यह इन सभी स्ट्रिंग में मौजूद है।
इसे हल करने के लिए, हम पहली स्ट्रिंग को कर्व के रूप में लेंगे, अब एरे से प्रत्येक स्ट्रिंग को लें और उन्हें कैरेक्टर द्वारा कैरेक्टर पढ़ें, और कर्ट और ली गई स्ट्रिंग के बीच के कैरेक्टर को एक-एक करके चेक करें। यदि वे समान हैं तो अगले चरित्र के लिए जाएं, अन्यथा लूप को तोड़ दें, और कर को मिलान किए गए विकल्प के रूप में अपडेट करें।
आइए इसे बेहतर ढंग से समझने के लिए कार्यान्वयन देखें
उदाहरण (पायथन)
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"