
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Find Length of Longest Anagram Subsequence in Python
Suppose we have two lowercase strings S and T, we have to find the length of the longest anagram subsequence.
So, if the input is like S = "helloworld", T = "hellorld", then the output will be 8
To solve this, we will follow these steps −
c := a new map, d := a new map
-
for i in range 0 to size of a, do
-
if a[i] in c, then
c[a[i]] := c[a[i]] + 1
-
otherwise,
c[a[i]] := 1
-
-
for i in range 0 to size of b, do
-
if b[i] in d, then
d[b[i]] := d[b[i]] + 1
-
otherwise,
d[b[i]] := 1
-
res := 0
-
for each ch in c, do
-
if d[ch] > 0, then
res := res + minimum of c[ch] and d[ch]
-
return res
Let us see the following implementation to get better understanding −
Example
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))
Input
S = "helloworld", T = "hellorld"
Output
1
Advertisements