কম্পিউটার টিউটোরিয়াল

পাইথনে স্ট্রিং থেকে ভিন্ন পূর্ণসংখ্যার সংখ্যা গণনা


একটি ছোট হাতের অ্যালফানিউমেরিক স্ট্রিং s দেওয়া আছে। স্ট্রিং-এ থাকা সব নন-ডিজিট ক্যারেক্টারকে স্পেস দিয়ে রিপ্লেস করলে কিছু পূর্ণসংখ্যা পাওয়া যায় যা কমপক্ষে এক স্পেস দিয়ে পৃথক। অবদি শূন্য বাদ দিয়ে দশমিক রূপে ভিন্ন পূর্ণসংখ্যাগুলোর সংখ্যা বের করতে হবে।

যেমন, s = "ab12fg012th5er67" হলে আউটপুট ৩। কারণ পাওয়া সংখ্যাগুলো: ["12", "012", "5", "67"]। "12" এবং "012" স্ট্রিং হিসেবে ভিন্ন কিন্তু পূর্ণসংখ্যা হিসেবে একই। তাই ৩টি ভিন্ন পূর্ণসংখ্যা।

সমাধানের ধাপসমূহ

  • nums := খালি লিস্ট, k := খালি স্ট্রিং
  • s-এর প্রতিটি ক্যারেক্টার i এর জন্য:
    • যদি ASCII 48-57 এর মধ্যে হয় (ডিজিট), তবে k += s[i]
    • অন্যথায়, যদি k খালি না হয়, তবে nums-এ int(k) যোগ করুন, k := ""
  • লুপ শেষে যদি k খালি না হয়, তবে nums-এ int(k) যোগ করুন।
  • 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

  1. পাইথন প্রোগ্রাম: রিকার্শন ব্যবহার করে সংখ্যা প্রাইম নাকি নন-প্রাইম চেক করা

  2. পাইথনে প্রাইম নম্বর খুঁজে বের করার বিভিন্ন পদ্ধতি

  3. পাইথন প্রোগ্রামে প্রাইম নাম্বার খুঁজে বের করার বিভিন্ন পদ্ধতির বিশ্লেষণ

  4. পাইথন প্রোগ্রাম: সেট ব্যবহার করে স্ট্রিং-এ স্বরবর্ণ (vowel) গণনা