কম্পিউটার

পাইথনে একটি স্ট্রিংকে অন্যটিতে রূপান্তর করা সম্ভব কিনা তা পরীক্ষা করুন


ধরুন আমাদের দুটি স্ট্রিং s এবং t আছে, t বড় হাতের অক্ষরে আছে। আমরা নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করে s কে t তে রূপান্তর করতে পারি কিনা তা পরীক্ষা করতে হবে৷

  • কিছু ​​ছোট হাতের অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করুন।
  • সকল ছোট হাতের অক্ষর সরান।

সুতরাং, যদি ইনপুটটি s ="fanToM", t ="TOM" এর মত হয়, তাহলে আউটপুটটি True হবে কারণ আমরা 'o' কে 'O' তে পরিবর্তন করতে পারি তারপর এটিকে t করতে s থেকে অন্যান্য ছোট হাতের অক্ষরগুলি সরিয়ে ফেলতে পারি।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • n :=s এর আকার, m :=t এর আকার
  • dp:=আকারের একটি ম্যাট্রিক্স (m + 1)x(n + 1) এবং False দিয়ে পূরণ করুন
  • dp[0, 0] :=সত্য
  • আমি 0 থেকে s - 1 এর পরিসরের জন্য, কর
      j-এর জন্য 0 থেকে t আকারের পরিসরে,
        করুন
      • যদি dp[i, j] সত্য হয়, তাহলে
        • যদি বড় হাতের j
        • dp[i + 1, j + 1] :=সত্য
      • যদি s[i] বড় হাতের অক্ষরে না থাকে, তাহলে
        • dp[i + 1, j] :=সত্য
  • রিটার্ন dp[n, m]
  • উদাহরণ

    আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

    def solve(s,t):
       n = len(s)
       m = len(t)
       dp= [[False for i in range(m+1)] for i in range(n+1)]
       dp[0][0] = True
       for i in range(len(s)):
          for j in range(len(t)+1):
             if dp[i][j] == True:
                if j < len(t) and (s[i].upper() == t[j]):
                   dp[i + 1][j + 1] = True
                if s[i].isupper()==False:
                   dp[i + 1][j] = True
       return dp[n][m]
    s = "fanToM"
    t = "TOM"
    print(solve(s, t))

    ইনপুট

    "fanToM", "TOM"

    আউটপুট

    True

    1. Python - একটি ভেরিয়েবল স্ট্রিং কিনা তা পরীক্ষা করুন

    2. আরেকটি পাইথন স্ট্রিং যোগ করুন

    3. পাইথনে একটি স্ট্রিং আলফানিউমেরিক কিনা তা কীভাবে পরীক্ষা করবেন?

    4. পাইথনের অন্য স্ট্রিংয়ে একটি সাবস্ট্রিং রয়েছে কিনা তা কীভাবে পরীক্ষা করবেন