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

ফোন নম্বর রিফরম্যাট করার পাইথন প্রোগ্রাম

একটি ফোন নম্বর স্ট্রিং হিসেবে দেওয়া আছে যাতে ডিজিট, স্পেস এবং/অথবা ড্যাশ ('-') থাকতে পারে। নির্দিষ্ট নিয়মে রিফরম্যাট করতে হবে:

  • সব স্পেস এবং ড্যাশ মুছে দিন

  • বাম থেকে ডানে ৩-৩ ডিজিট করে ব্লক বানান যতক্ষণ ৪ বা তার কম ডিজিট বাকি থাকে

  • শেষ ডিজিটগুলো ব্লকে করুন:

    • ২ ডিজিট: এক ব্লক দৈর্ঘ্য ২
    • ৩ ডিজিট: এক ব্লক দৈর্ঘ্য ৩
    • ৪ ডিজিট: দুটি ব্লক দৈর্ঘ্য ২ করে
  • ব্লকগুলো ড্যাশ দিয়ে জোড়া দিন

ইনপুট: s = "9-6-84102-4 7-8" → আউটপুট: "968-410-24-78"।

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

  • digits := "", blk := ""

  • s-এর প্রতিটি ক্যারেক্টার i-এর জন্য:

    • যদি i ডিজিট হয়: blk += i
    • যদি len(blk) == 3: digits += blk + "-", blk = ""
  • শেষ ব্লক হ্যান্ডল করুন:

    • len(blk)==0: digits[:-1] রিটার্ন
    • len(blk)==1: digits[:-2] + "-" + digits[-2] + blk
    • len(blk)==2: digits + blk

উদাহরণ (Python)

def solve(s):
    digits = ""
    blk = ""
    for i in s:
        if i.isnumeric():
            blk += i
            if len(blk) == 3:
                digits += blk + "-"
                blk = ""
    if len(blk) == 0:
        return digits[:-1]
    elif len(blk) == 1:
        return digits[:-2] + "-" + digits[-2] + blk
    elif len(blk) == 2:
        return digits + blk

s = "9-6-84102-4 7-8"
print(solve(s))

ইনপুট

"9-6-84102-4 7-8"

আউটপুট

968-410-24-78
  1. পাইথনে BST-এ নির্দিষ্ট রেঞ্জে থাকা নোডের সংখ্যা খুঁজে বের করার প্রোগ্রাম

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

  3. পাইথনে ফোন নম্বরের লেটার কম্বিনেশন

  4. পাইথনে লিস্ট থেকে সর্বোচ্চ সংখ্যা বের করা