ধরুন আমাদের একটি ছোট হাতের আলফানিউমেরিক স্ট্রিং s আছে। আমরা প্রতিটি নন-ডিজিট অক্ষরকে একটি স্পেস দিয়ে প্রতিস্থাপন করতে শেভ করি, কিন্তু এখন আমাদের কাছে কিছু পূর্ণসংখ্যা বাকি আছে যেগুলি অন্তত একটি স্থান দ্বারা পৃথক করা হয়েছে। s-এ প্রতিস্থাপন ক্রিয়া সম্পাদন করার পরে আমাদের বিভিন্ন পূর্ণসংখ্যার সংখ্যা খুঁজে বের করতে হবে। এখানে দুটি সংখ্যাকে ভিন্ন হিসাবে বিবেচনা করা হয় যদি কোন অগ্রণী শূন্য ছাড়া তাদের দশমিক উপস্থাপনা ভিন্ন হয়।
সুতরাং, যদি ইনপুটটি s ="ab12fg012th5er67" এর মত হয়, তাহলে আউটপুট হবে 3 কারণ, এখানে কয়েকটি সংখ্যা ["12", "012", "5", "67"] এখন "12" এবং "012" আছে। স্ট্রিং ভিন্ন কিন্তু পূর্ণসংখ্যা হিসাবে একই. তাই তিনটি স্বতন্ত্র সংখ্যা আছে।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সংখ্যা :=একটি নতুন তালিকা
-
k :=ফাঁকা স্ট্রিং
-
0 থেকে s আকারের রেঞ্জের জন্য, করুন
-
যদি s[i]> 47-এর ASCII এবং s[i] <58-এর ASCII হয়, তাহলে
-
k :=k concatenate 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