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

পাইথন ব্যবহার করে স্ট্রিং থেকে সকল ডুপ্লিকেট ক্যারেক্টার বের করা


একটি স্ট্রিং দেওয়া আছে। আমাদের কাজ হলো সেই ক্যারেক্টারগুলো বের করা যাদের ফ্রিকোয়েন্সি দেওয়া স্ট্রিং-এ এক এর চেয়ে বেশি।

উদাহরণস্বরূপ, স্ট্রিং "Hello World. Let's learn Python" দেখলে অ্যালগরিদমটি সেই অক্ষরগুলো খুঁজে বের করবে যেগুলো একাধিকবার ঘটেছে। এই কেসে আউটপুট হবে -

 e : 3 l : 4 o , 3) <space> : 4 r : 2 t : 2 n : 2 

এই সমস্যা ইমপ্লিমেন্ট করতে আমরা পাইথন Collections ব্যবহার করছি। Collection থেকে Counter() মেথড পাওয়া যায়। Counter() মেথড হ্যাশ টেবিল অবজেক্ট গণনা করতে ব্যবহৃত হয়। এই কেসে, এটি টেক্সট থেকে ক্যারেক্টারগুলো আলাদা করে এবং প্রতিটি ক্যারেক্টারকে ডিকশনারির কী (key) বানায়, এবং ক্যারেক্টার কাউন্টই সেই কী-গুলোর ভ্যালু।

অ্যালগরিদম

 ধাপ ১: স্ট্রিং থেকে কী-ভ্যালু পেয়ার বের করুন, যেখানে প্রতিটি ক্যারেক্টার কী এবং ক্যারেক্টার কাউন্ট ভ্যালু। ধাপ ২: প্রতিটি কী-এর জন্য চেক করুন ভ্যালু একের চেয়ে বড় কিনা। ধাপ ৩: যদি একের চেয়ে বড় হয়, তবে এটি ডুপ্লিকেট, তাই মার্ক করুন। অন্যথায় ক্যারেক্টারটি ইগনোর করুন। 

উদাহরণ কোড

 from collections import Counter defcalc_char_freq(string): freq_count = Counter(string) # অক্ষরকে কী এবং ফ্রিকোয়েন্সিকে ভ্যালু হিসেবে ডিকশনারি পান for key in freq_count.keys(): if freq_count.get(key) > 1: # সকল ভিন্ন কী-এর জন্য, অক্ষর এবং ফ্রিকোয়েন্সি লিস্ট করুন print("(" + key + ", " + str(freq_count.get(key)) + ")") myStr = 'Hello World. Let’s learn Python' calc_char_freq(myStr) 

আউটপুট

 (e, 3) (l, 4) (o, 3) ( , 4) (r, 2) (t, 2) (n, 2) 

  1. পাইথনে Regex ব্যবহার করে স্ট্রিংয়ে 10+1 প্যাটার্নের সব_match বের করার প্রোগ্রাম

  2. Python-এ স্ট্রিং থেকে সংখ্যা বের করা

  3. পাইথনে স্ট্রিং থেকে সব স্পেশাল ক্যারেক্টার, পাঙ্কচুয়েশন এবং স্পেস রিমুভ করা

  4. পাইথন ব্যবহার করে স্ট্রিং থেকে ক্যারেক্টার মুছে ফেলার পদ্ধতি