ধরুন আমাদের স্ট্রিং হিসাবে একটি ফোন নম্বর আছে। ফোন নম্বর নম্বরে সংখ্যা, স্পেস এবং/অথবা ড্যাশ '-' থাকে। আমরা একটি নির্দিষ্ট পদ্ধতিতে ফোন নম্বর পুনরায় ফর্ম্যাট করতে চাই। কিছু নিয়ম আছে -
-
শুরুতে সমস্ত স্পেস এবং ড্যাশ সরান
-
বাম দিক থেকে ডান দিকের সংখ্যাগুলিকে 3 দৈর্ঘ্যের ব্লকগুলিতে গোষ্ঠীবদ্ধ করুন যতক্ষণ না 4 বা তার কম সংখ্যা বাকি থাকে৷
-
তারপরে চূড়ান্ত সংখ্যাগুলিকে −
এর মত গোষ্ঠীভুক্ত করা হয়-
2 সংখ্যার জন্য:2 দৈর্ঘ্যের একটি একক ব্লক।
-
3 সংখ্যার জন্য:3 দৈর্ঘ্যের একটি একক ব্লক।
-
4 সংখ্যার জন্য:দৈর্ঘ্যের আরও দুটি ব্লক প্রতিটি 2।
-
এই ব্লকগুলি তারপর ড্যাশ দ্বারা ক্লাব করা হয়. আমাদের রিফরম্যাট করা ফোন নম্বর খুঁজতে হবে।
সুতরাং, যদি ইনপুট s ="9-6-84102-4 7-8" এর মত হয়, তাহলে আউটপুট হবে "968-410-24-78"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সংখ্যা :=একটি ফাঁকা স্ট্রিং
-
blk :=একটি ফাঁকা স্ট্রিং
-
প্রতিটি অক্ষরের জন্য i s, do
-
যদি আমি সাংখ্যিক হয়, তাহলে
-
blk :=blk concatenate i
-
-
যদি blk এর আকার 3 এর সমান হয়, তাহলে
-
ডিজিট :=ডিজিট কনক্যাটেনেট blk কনক্যাটেনেট ড্যাশ("-")
-
blk :=একটি ফাঁকা স্ট্রিং
-
-
-
যদি blk এর আকার 0 এর সমান হয়, তাহলে
-
সূচক 0 থেকে ডিজিট-1-এর আকার পর্যন্ত ডিজিটের সাবস্ট্রিং ফেরত দিন]
-
-
অন্যথায় যখন blk এর আকার 1 এর মতো হয়, তখন
-
ইনডেক্স 0 থেকে ডিজিট-2 এর আকার পর্যন্ত ডিজিটের সাবস্ট্রিং রিটার্ন করুন] কনক্যাটেনেট ড্যাশ("-") ডিজিটের দ্বিতীয় শেষ ক্যারেক্টার কনক্যাটেনেট blk
-
-
অন্যথায় যখন blk এর আকার 2 এর সমান হয়, তখন
-
রিটার্ন ডিজিট একত্রিত blk
-
উদাহরণ (পাইথন)
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
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