मान लीजिए हमारे पास एक लोअरकेस अल्फान्यूमेरिक स्ट्रिंग s है। हमें हर गैर-अंक वर्ण को स्पेस से बदलना है, लेकिन अब हम कुछ पूर्णांकों के साथ रह गए हैं जो कम से कम एक स्पेस से अलग हैं। हमें s पर प्रतिस्थापन संचालन करने के बाद विभिन्न पूर्णांकों की संख्या ढूंढनी है। यहां दो संख्याओं को अलग माना जाता है यदि उनके अग्रणी शून्यों के बिना दशमलव प्रतिनिधित्व अलग हैं।
उदाहरण के लिए, यदि इनपुट s = "ab12fg012th5er67" है, तो आउटपुट 3 होगा क्योंकि, कुछ संख्याएं ["12", "012", "5", "67"] हैं अब "12" और "012" स्ट्रिंग में अलग हैं लेकिन पूर्णांक के रूप में समान हैं। इसलिए तीन अलग-अलग संख्याएं हैं।
हल करने के चरण
nums := एक नई सूची
k := खाली स्ट्रिंग
i को 0 से s के आकार तक की रेंज में लिए करें
यदि s[i] का ASCII > 47 और s[i] का ASCII < 58, तो
k := k + s[i]
अन्यथा,
यदि k खाली स्ट्रिंग नहीं है, तो
k के पूर्णांक रूप को nums के अंत में डालें
k := खाली स्ट्रिंग
यदि k खाली स्ट्रिंग नहीं है, तो
k के पूर्णांक रूप को nums के अंत में डालें
nums में विशिष्ट तत्वों की गिनती वापस करें
उदाहरण
def solve(s):
nums = []
k = ""
for i in range(len(s)):
if ord(s[i]) > 47 and ord(s[i]) < 58:
k += s[i]
else:
if k != "":
nums.append(int(k))
k = ""
if k != "":
nums.append(int(k))
return len(set(nums))
s = "ab12fg012th5er67"
print(solve(s))
इनपुट
"ab12fg012th5er67"
आउटपुट
3