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

পাইথনে DI স্ট্রিং ম্যাচ

মান লেই একটি স্ট্রিং S আছে যেটা শুধু "I" (বৃদ্ধি বোঝাতে) বা "D" (হ্রাস বোঝাতে) ধারণ করে, N = S-এর সাইজ। আমাদের [0, 1, ..., N]-এর যেকোনো পারমুটেশন A রিটার্ন করতে হবে যাতে সব i = 0, ..., N-1 এর জন্য −

  • যদি S[i] = "I" হয়, তবে A[i] < A[i+1]
  • অন্যথায় যদি S[i] = "D" হয়, তবে A[i] > A[i+1]

সেজন্য, যদি ইনপুট হয় "IDID", তবে আউটপুট হবে [0,4,1,3,2]

এটি সমাধান করার জন্য আমরা নিচের ধাপগুলো অনুসরণ করব −

  • A := 0 থেকে N পর্যন্ত একটি লিস্ট যেখানে N = S-এর সাইজ।
  • res = একটি খালি লিস্ট
  • S-এর প্রতিটি এলিমেন্ট j-এর জন্য,
    • যদি j = I হয়, তবে A-এর শেষ এলিমেন্ট ডিলিট করে res-এ ইনসার্ট
    • অন্যথায় A-এর প্রথম এলিমেন্ট ডিলিট করে res-এ ইনসার্ট
  • res রিটার্ন

বেস্টার বোঝার জন্য নিচের ইম্প্লিমেন্টেশন দেখুন −

উদাহরণ

class Solution:
    def diStringMatch(self, S):
        A = [i for i in range(len(S) + 1)]
        return [A.pop((j == 'I') - 1) for j in S] + A

ob = Solution()
print(ob.diStringMatch("IDID"))

ইনপুট

"IDID"

আউটপুট

[0, 4, 1, 3, 2]
  1. পাইথনে কোটেশন (Quotation in Python)

  2. পাইথনে স্ট্রিং রোটেশন যাচাই

  3. পাইথনে স্ট্রিং রিভার্স (ইন-প্লেস)

  4. পাইথনে casefold() স্ট্রিং মেথড