Advertisement
Egor_1425

Untitled

Mar 26th, 2024
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.32 KB | None | 0 0
  1. d = dict()
  2. dict1 = dict()
  3. dict2 = dict()
  4. for i in range(26):
  5.     d[chr(97 + i)] = i
  6.     dict1[chr(97 + i)] = 0
  7.     dict2[chr(97 + i)] = 0
  8. name1 = list(input())
  9. name2 = list(input())
  10. for i in name1:
  11.     dict1[i] += 1
  12. for i in name2:
  13.     dict2[i] += 1
  14. i1 = 0
  15. i2 = 0
  16. a = []
  17. while i1 < len(name1) and i2 < len(name2):
  18.     if dict2[name1[i1]] == 0:
  19.         i1 += 1
  20.         continue
  21.     if dict1[name2[i2]] == 0:
  22.         i2 += 1
  23.         continue
  24.     if name1[i1] == name2[i2]:
  25.         while len(a) != 0 and d[name1[i1]] > d[a[-1]]:
  26.             a.pop()
  27.         a.append(name1[i1])
  28.         dict1[name1[i1]], dict2[name2[i2]] = dict1[name1[i1]] - 1, dict2[name2[i2]] - 1
  29.         i1, i2 = i1 + 1, i2 + 1
  30.     elif d[name1[i1]] > d[name2[i2]]:
  31.         dict2[name2[i2]] -= 1
  32.         i2 += 1
  33.     else:
  34.         dict1[name1[i1]] -= 1
  35.         i1 += 1
  36.  
  37. while i2 >= len(name2) and name2[i2-1] != name1[i1-1] and i1 < len(name1):
  38.     i1 += 1
  39.     if name2[i2-1] == name1[i1-1]:
  40.         while len(a) != 0 and d[name1[i1]] > d[a[-1]]:
  41.             a.pop()
  42.         a.append(name1[i1])
  43. while i1 >= len(name1) and name2[i2-1] != name1[i1-1] and i2 < len(name2):
  44.     i2 += 1
  45.     if name2[i2-1] == name1[i1-1]:
  46.         while len(a) != 0 and d[name2[i2]] > d[a[-1]]:
  47.             a.pop()
  48.         a.append(name1[i2])
  49.  
  50. print(''.join(a))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement