Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm độ dài của dãy con đảo chữ dài nhất trong Python

Giả sử chúng ta có hai chuỗi chữ thường S và T, chúng ta phải tìm độ dài của chuỗi con dài nhất.

Vì vậy, nếu đầu vào là S ="helloworld", T ="hellorld", thì đầu ra sẽ là 8

  • Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • c:=a new map, d:=a new map

  • đối với tôi trong phạm vi từ 0 đến kích thước của a, do

    • nếu a [i] trong c thì

      • c [a [i]]:=c [a [i]] + 1

    • nếu không,

      • c [a [i]]:=1

  • đối với tôi trong phạm vi từ 0 đến kích thước của b, thực hiện

    • nếu b [i] trong d, thì

      • d [b [i]]:=d [b [i]] + 1

    • nếu không,

      • d [b [i]]:=1

  • res:=0

  • đối với mỗi ch trong c, thực hiện

    • nếu d [ch]> 0 thì

      • res:=res + tối thiểu của c [ch] và d [ch]

  • trả lại res

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

class Solution:
   def solve(self, a, b):
      c, d = {}, {}
      for i in range(len(a)):
         if a[i] in c:
            c[a[i]] += 1
         else:
            c[a[i]] = 1
      for i in range(len(b)):
         if b[i] in d:
            d[b[i]] += 1
         else:
            d[b[i]] = 1
      res = 0
      for ch in c:
         if d.get(ch, 0) > 0:
            res += min(c[ch], d[ch])
         return res
ob = Solution()
S = "helloworld"
T = "hellorld"
print(ob.solve(S, T))

Đầu vào

S = "helloworld", T = "hellorld"

Đầu ra

1