ধরুন আমাদের লগের একটি অ্যারে আছে। সেই অ্যারেতে প্রতিটি এন্ট্রি শব্দের একটি স্পেস সীমাবদ্ধ স্ট্রিং। প্রতিটি লগের প্রথম শব্দটি একটি আলফানিউমেরিক শনাক্তকারী। তারপর, নিচের মত বিভিন্ন ধরনের স্ট্রিং আছে −
- আইডির পরের প্রতিটি শব্দে শুধুমাত্র ছোট হাতের অক্ষর থাকবে;
- আইডির পরের প্রতিটি শব্দে শুধুমাত্র সংখ্যা থাকবে।
এই দুই ধরনের লগকে আমরা যথাক্রমে লেটার-লগ এবং ডিজিট-লগ বলব। এবং ti নিশ্চিত যে প্রতিটি লগের আইডির পরে অন্তত একটি শব্দ আছে৷
৷আমাদের লগগুলিকে পুনর্বিন্যাস করতে হবে যাতে সমস্ত অক্ষর-লগগুলি কোনও অঙ্ক-লগের আগে থাকে। এবং অক্ষর-লগগুলিকে অভিধানিকভাবে শনাক্তকারীকে উপেক্ষা করে আদেশ করা হয়, বন্ধনের ক্ষেত্রে ব্যবহৃত সনাক্তকারীর সাথে। অবশেষে, অঙ্ক-লগগুলিকে তাদের আসল ক্রমে রাখতে হবে। তাই আমাদের লগের চূড়ান্ত ক্রম ফেরত দিতে হবে।
সুতরাং, যদি ইনপুটটি লগের মত হয় =["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"], তাহলে আউটপুট হবে [ "লেট1 আর্ট ক্যান","লেট3 আর্ট জিরো","লেট2 নিজস্ব কিট ডিগ","ডিগ১ 9 2 52","ডিগ2 4 8"]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- শব্দ :=একটি নতুন তালিকা
- সংখ্যা :=একটি নতুন তালিকা
- প্রতিটি লগ ইনের জন্য, করুন
- s :=লগের শব্দের তালিকা
- যদি দ্বিতীয় শব্দটি একটি সংখ্যা হয়, তাহলে
- সংখ্যার শেষে লগ ঢোকান
- অন্যথায়,
- স্পেস দিয়ে আলাদা করে s-এর প্রতিটি উপাদান যোগ করুন এবং শেষে শব্দের অ্যারেতে সন্নিবেশ করুন
- শব্দ =তারপর শব্দের অ্যারেকে অভিধানিকভাবে সাজান
- শব্দ :=স্পেস দিয়ে আলাদা করে শব্দ অ্যারের প্রতিটি উপাদানে যোগ দিন এবং স্ট্রিংগুলির একটি তালিকা তৈরি করুন
- দুটি তালিকার শব্দ এবং সংখ্যা একত্রিত করুন, তারপরে ফিরে আসুন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
class Solution: def reorderLogFiles(self, logs): words = [] nums = [] for log in logs: s = log.split() if s[1].isdigit(): nums.append(log) else: words.append((s[0], ' '.join(s[1:]))) words = sorted(words, key=lambda x: (x[1],x[0])) words = [' '.join(w) for w in words] return words + nums ob = Solution() print(ob.reorderLogFiles(["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]))
ইনপুট
["dig1 9 2 5 2","let1 art can","dig2 4 8","let2 own kit dig","let3 art zero"]
আউটপুট
['let1 art can', 'let3 art zero', 'let2 own kit dig', 'dig1 9 2 5 2', 'dig24 8']