Guest User

Python Anagram Algorithm

a guest
Apr 24th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.76 KB | None | 0 0
  1. import numpy as np
  2. import string
  3.  
  4. WORDLIST = string.ascii_lowercase + " "
  5.  
  6.  
  7. def prime(i, primes):
  8.     for prime in primes:
  9.         if not (i == prime or i % prime):
  10.             return False
  11.     primes.add(i)
  12.     return i
  13.  
  14.  
  15. primes = set([2])
  16. ii, ip = 2, 0
  17. while True:
  18.     if prime(ii, primes):
  19.         ip += 1
  20.         if ip == len(WORDLIST):
  21.             break
  22.     ii += 1
  23.  
  24. mapping = {}
  25. for i in WORDLIST:
  26.     mapping.update({i: primes.pop()})
  27. print(mapping)
  28.  
  29. word_a = "Edward Daniels".lower()
  30. word_b = "Andrew Laeddis".lower()
  31. factor_a = np.array([mapping[i] for i in word_a])
  32. factor_b = np.array([mapping[i] for i in word_b])
  33.  
  34. if np.prod(factor_a) == np.prod(factor_b):
  35.     print("Words are anagrams!")
  36. else:
  37.     print("Nope, they're not.")
Add Comment
Please, Sign In to add comment