সমস্যা বিবরণ
দুটি স্ট্রিংয়ের কমন ক্যারেক্টার গুলো বের করে একটি নতুন স্ট্রিং বানাতে হবে।
উদাহরণ
string_1 = 'tutorialspoint'
string_2 = 'tut'
Output: 'tu' (অথবা 'ut' - অর্ডার গ্যারান্টি নেই)
পদ্ধতি ১: লুপ ব্যবহার করে (অর্ডার প্রিজার্ভ করে)
প্রথম স্ট্রিং ইটারেট করে ক্যারেক্টার দ্বিতীয় স্ট্রিংএ আছে কিনা চেক করুন। ডুপ্লিকেট এড়াতে রেজাল্ট স্ট্রিংও চেক করুন।
string_1 = 'tutorialspoint'
string_2 = 'tut'
result = ''
for char in string_1:
if char in string_2 and char not in result:
result += char
print(result) # 'tu' (string_1 এর অর্ডার অনুযায়ী)
পদ্ধতি ২: সেট ব্যবহার করে (দ্রুত, অর্ডার নেই)
দুই স্ট্রিংকে সেটে কনভার্ট করে ইন্টারসেকশন নিন।
string_1 = 'tutorialspoint'
string_2 = 'tut'
result = set(string_1).intersection(string_2)
result_str = ''.join(result)
print(result_str) # 'ut' (অর্ডার অনিশ্চিত)
তুলনা
| পদ্ধতি | অর্ডার | সময় জটিলতা | ডুপ্লিকেট হ্যান্ডলিং |
|---|---|---|---|
| Loop + String Check | প্রথম স্ট্রিংয়ের অর্ডার | O(n × m) | ম্যানুয়াল |
| Set Intersection | গ্যারান্টি নেই | O(n + m) | সেট আটোমেটিক |
উপসংহার
- অর্ডার জরুরি হলে লুপ পদ্ধতি ব্যবহার করুন
- পারফরম্যান্স ও সহজতার জন্য সেট পদ্ধতি ভালো
- সেট পদ্ধতিতে
''.join(sorted(result))দিয়ে সর্টেড আউটপুট পাওয়া যায়