Advertisement
Iam_Sandeep

Untitled

Aug 15th, 2022
695
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.46 KB | None | 0 0
  1. def find(a,b,cnt):
  2.     m,n=len(a),len(b)
  3.     def dfs(i,j,k):
  4.         #print(i,j,k)
  5.         if i==m or j==n:
  6.             return 0
  7.         ans=0
  8.         if a[i]==b[j]:
  9.             ans= 1+dfs(i+1,j+1,k)
  10.         else:
  11.             t = abs(ord(a[i])-ord(b[j]))
  12.             r=min(t,26-t)
  13.             #print(r)
  14.             if k+r<=cnt:
  15.                 ans=max(ans,1+dfs(i+1,j+1,k+r))
  16.             ans=max(ans,dfs(i+1,j,k),dfs(i,j+1,k))
  17.         return ans
  18.     return dfs(0,0,0)
  19. print(find("fpelqanxyk","hackerrank",6))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement