Skip to content

Commit 4dbef8f

Browse files
Merge pull request #58 from sanskar28/master
Added Abbrevation in python
2 parents 34cca5a + 79834d2 commit 4dbef8f

File tree

2 files changed

+41
-1
lines changed

2 files changed

+41
-1
lines changed

Dynamic Programming/Abbrevation.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/bin/python3
2+
3+
import math
4+
import os
5+
import random
6+
import re
7+
import sys
8+
9+
def abbreviation(a, b):
10+
m, n = len(a), len(b)
11+
dp = [[False]*(m+1) for _ in range(n+1)]
12+
dp[0][0] = True
13+
for i in range(n+1):
14+
for j in range(m+1):
15+
if i == 0 and j != 0:
16+
dp[i][j] = a[j-1].islower() and dp[i][j-1]
17+
elif i != 0 and j != 0:
18+
if a[j-1] == b[i-1]:
19+
dp[i][j] = dp[i-1][j-1]
20+
elif a[j-1].upper() == b[i-1]:
21+
dp[i][j] = dp[i-1][j-1] or dp[i][j-1]
22+
elif not (a[j-1].isupper() and b[i-1].isupper()):
23+
dp[i][j] = dp[i][j-1]
24+
return "YES" if dp[n][m] else "NO"
25+
26+
if __name__ == '__main__':
27+
fptr = open(os.environ['OUTPUT_PATH'], 'w')
28+
29+
q = int(input())
30+
31+
for q_itr in range(q):
32+
a = input()
33+
34+
b = input()
35+
36+
result = abbreviation(a, b)
37+
38+
fptr.write(result + '\n')
39+
40+
fptr.close()

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ in C++, Java and Python.
5353
|Dynamic Programming| ||||
5454
||[Max Sum Array](https://www.hackerrank.com/challenges/max-array-sum/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dynamic-programming)|[Done](/Dynamic%20Programming/max_array_sum.cpp)|[Done](https://github.com/maze-runnar/interview-preparation-kit/blob/master/Dynamic%20Programming/MaxSumArray.java)|[Done](/Dynamic%20Programming/MaxSumArray.py)|
5555
||[Candies](https://www.hackerrank.com/challenges/candies/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dynamic-programming)|[Done](/Dynamic%20Programming/candies.cpp)||[Done](/Dynamic%20Programming/Candies.py)|
56-
| |[Abbreviation](https://www.hackerrank.com/challenges/abbr/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dynamic-programming) |[Done](/Dynamic%20Programming/abbreviation.cpp) | | |
56+
| |[Abbreviation](https://www.hackerrank.com/challenges/abbr/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dynamic-programming) |[Done](/Dynamic%20Programming/abbreviation.cpp) | | [Done](/Dynamic%20Programming/Abbrevation.py)|
5757
| |[Decibinary Numbers](https://www.hackerrank.com/challenges/decibinary-numbers/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dynamic-programming) |[Done](/Dynamic%20Programming/decibinary_numbers.cpp) | | |
5858
|Stacks and Queues|||||
5959
||[Balanced Brackets](https://www.hackerrank.com/challenges/balanced-brackets/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=stacks-queues)|||[Done](/Stack%20and%20Queues/BalancedBrackets.py)|

0 commit comments

Comments
 (0)