mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-27 23:11:09 +00:00
add abbrevation solution to dp
This commit is contained in:
parent
a03b2eafc0
commit
69f009e0a5
29
dynamic_programming/abbreviation.py
Normal file
29
dynamic_programming/abbreviation.py
Normal file
|
@ -0,0 +1,29 @@
|
|||
"""
|
||||
https://www.hackerrank.com/challenges/abbr/problem
|
||||
You can perform the following operation on some string, :
|
||||
|
||||
1. Capitalize zero or more of 's lowercase letters at some index i
|
||||
(i.e., make them uppercase).
|
||||
2. Delete all of the remaining lowercase letters in .
|
||||
|
||||
Example:
|
||||
a=daBcd and b="ABC"
|
||||
daBcd -> capitalize a and c(dABCd) -> remove d (ABC)
|
||||
"""
|
||||
def abbr(a, b):
|
||||
n = len(a)
|
||||
m = len(b)
|
||||
dp = [[False for _ in range(m + 1)] for _ in range(n + 1)]
|
||||
dp[0][0] = True
|
||||
for i in range(n):
|
||||
for j in range(m + 1):
|
||||
if dp[i][j]:
|
||||
if j < m and a[i].upper() == b[j]:
|
||||
dp[i + 1][j + 1] = True
|
||||
if a[i].islower():
|
||||
dp[i + 1][j] = True
|
||||
return dp[n][m]
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
print abbr("daBcd", "ABC") # expect True
|
Loading…
Reference in New Issue
Block a user