ধরুন আমাদের কাছে ছোট হাতের স্ট্রিংগুলির একটি তালিকা আছে, আমাদের সবচেয়ে দীর্ঘতম সাধারণ উপসর্গটি খুঁজে বের করতে হবে৷
সুতরাং, যদি ইনপুটটি ["অ্যান্টিভাইরাস", "অ্যান্টিকলকওয়াইজ", "অ্যান্টিগ্রাভিটি"] এর মত হয়, তাহলে আউটপুট হবে "অ্যান্টি"
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
তালিকার শব্দগুলিকে বর্ণানুক্রমিকভাবে সাজান
- উপসর্গ :=একটি নতুন তালিকা
- পতাকা :=0
- আমি 0 থেকে শব্দের আকারের মধ্যে [0],
- করুন
- শব্দে প্রতিটি j-এর জন্য, করুন
- যদি j[i] উপসর্গের শেষ উপাদানের মতো না হয়, তাহলে
- উপসর্গ থেকে শেষ উপাদান মুছুন
- পতাকা :=1
- লুপ থেকে বেরিয়ে আসুন
- যদি j[i] উপসর্গের শেষ উপাদানের মতো না হয়, তাহলে
- যদি পতাকা 1 এর মত হয়, তাহলে
- লুপ থেকে বেরিয়ে আসুন
- শব্দে প্রতিটি j-এর জন্য, করুন
- প্রিফিক্স অ্যারেতে উপস্থিত সমস্ত উপাদান সংযুক্ত করার পরে স্ট্রিং ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def solve(self, words): words.sort() prefix = [] flag = 0 for i in range(len(words[0])): prefix.append(words[0][i]) for j in words: if j[i] != prefix[-1]: prefix.pop() flag = 1 break if flag == 1: break return ''.join(prefix) ob = Solution() words = ["antivirus", "anticlockwise", "antigravity"] print(ob.solve(words))
ইনপুট
["antivirus", "anticlockwise", "antigravity"]
আউটপুট
anti