मान लीजिए हमारे पास एक अल्फान्यूमेरिक स्ट्रिंग s है जिसमें "0" से "9" तक के अंक और लोअरकेस अंग्रेजी अक्षर हैं। हमें s में मौजूद संख्याओं का योग ढूंढना है। यदि अंक लगातार हैं तो उन्हें एक ही संख्या मानें।
उदाहरण के लिए, यदि इनपुट है s = "hello25world63power86", तो आउटपुट होगा 174 क्योंकि 25+63+86 = 174।
समाधान दृष्टिकोण
स्ट्रिंग को स्कैन करें, लगातार अंकों से वर्तमान संख्या बनाएं, गैर-अंक पर परिणाम में जोड़ें।
ret = 0,curr = 0आरंभ करें।- प्रत्येक कैरेक्टर
chके लिएsमें:- यदि
chअंक है, तोcurr = 10*curr + int(ch)। - अन्यथा,
ret += curr,curr = 0।
- यदि
ret + currलौटाएं।
पायथन कार्यान्वयन
from string import digits
def solve(s):
ret = 0
curr = 0
for ch in s:
if ch in digits:
curr = 10 * curr + int(ch)
else:
ret += curr
curr = 0
return ret + curr
s = "hello25world63power86"
print(solve(s))
इनपुट
"hello25world63power86"
आउटपुट
174