मान लीजिए कि हमारे पास एक लोअरकेस अल्फ़ान्यूमेरिक स्ट्रिंग s है। हम प्रत्येक गैर-अंकीय वर्ण को एक स्थान से बदलने के लिए दाढ़ी बनाते हैं, लेकिन अब हमारे पास कुछ पूर्णांक रह गए हैं जो कम से कम एक स्थान से अलग हो गए हैं। हमें s पर प्रतिस्थापन संक्रिया करने के बाद विभिन्न पूर्णांकों की संख्या ज्ञात करनी है। यहां दो संख्याओं को अलग माना जाता है यदि उनके दशमलव निरूपण बिना किसी अग्रणी शून्य के भिन्न होते हैं।
इसलिए, यदि इनपुट s ="ab12fg012th5er67" जैसा है, तो आउटपुट 3 होगा क्योंकि, कुछ संख्याएँ हैं ["12", "012", "5", "67"] अब "12" और "012" स्ट्रिंग में भिन्न हैं लेकिन पूर्णांक के समान हैं। तो तीन अलग-अलग संख्याएँ हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
अंक :=एक नई सूची
-
k :=रिक्त स्ट्रिंग
-
मैं के लिए 0 से s के आकार की सीमा में, ऐसा करें
-
अगर s[i]> 47 का ASCII और s[i] <58 का ASCII, तो
-
k :=k संयोजन s[i]
-
-
अन्यथा,
-
यदि k एक रिक्त स्ट्रिंग नहीं है, तो
-
अंकों के अंत में k का पूर्णांक रूप डालें
-
k :=रिक्त स्ट्रिंग
-
-
-
-
यदि k एक रिक्त स्ट्रिंग नहीं है, तो
-
अंकों के अंत में k का पूर्णांक रूप डालें
-
-
अंकों में अलग-अलग तत्वों की वापसी की संख्या
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
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