मान लीजिए हमारे पास लोअरकेस अल्फाबेट स्ट्रिंग्स की एक लिस्ट words है। हमें सबसे लंबे सन्निहित सबलिस्ट की लंबाई ढूंढनी है जहां प्रत्येक शब्द का पहला अक्षर समान हो।
उदाहरण के लिए, यदि इनपुट है words = ["she", "sells", "seashells", "on", "the", "sea", "shore"], तो आउटपुट होगा 3, सबसे लंबा सन्निहित सबलिस्ट है ["she", "sells", "seashells"]। प्रत्येक शब्द का पहला अक्षर 's' है।
समाधान दृष्टिकोण
यह एक सरल लीनियर स्कैन समस्या है। हम वर्तमान स्ट्रीक लंबाई और अधिकतम स्ट्रीक लंबाई ट्रैक करते हैं।
cnt = 1,maxcnt = 0,prev_char = ""आरंभ करें।- प्रत्येक शब्द के लिए:
- यदि
prev_charखाली है, तो इसे शब्द के पहले अक्षर पर सेट करें। - अन्यथा यदि
prev_charवर्तमान शब्द के पहले अक्षर के समान है, तोcntबढ़ाएं। - अन्यथा,
prev_charरीसेट करें औरcnt = 1। maxcnt = max(maxcnt, cnt)अपडेट करें।
- यदि
maxcntलौटाएं।
पायथन कार्यान्वयन
def solve(words):
cnt = 1
maxcnt = 0
prev_char = ""
for word in words:
if prev_char == "":
prev_char = word[0]
elif prev_char == word[0]:
cnt += 1
else:
prev_char = word[0]
cnt = 1
maxcnt = max(maxcnt, cnt)
return maxcnt
words = ["she", "sells", "seashells", "on", "the", "sea", "shore"]
print(solve(words))
इनपुट
["she", "sells", "seashells", "on", "the", "sea", "shore"]
आउटपुट
3