Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.77 KB | None | 0 0
  1. s = "abbabaabbabbaabbaaaba"
  2. t = "abba"
  3.  
  4. s = [ord(c) - ord('a') for c in s]
  5. t = [ord(c) - ord('a') for c in t]
  6. backlook = []
  7. frontlook = []
  8.  
  9. t_index = 0
  10. t_size = len(t)
  11. powers = [27 ** i for i in range(5)]
  12. print (powers)
  13. t_roller = 0
  14. for i in range(len(t)):
  15.     t_roller += t[i] * powers[t_size - i - 1]
  16.  
  17.  
  18. print(t_roller)
  19. def find_forward(start_index, end_index):
  20.     if end_index - start_index < t_size:
  21.         return 0
  22.     print("hi")
  23.     roller = 0
  24.     i = start_index
  25.     counter = 0
  26.     sub_string = []
  27.     while i < end_index:
  28.        
  29.         sub_string.append(s[i])
  30.         roller *= 27
  31.         roller += sub_string[-1]
  32.         if len(sub_string) > t_size:
  33.             c = sub_string.pop(0)
  34.             roller -= c * powers[t_size]
  35.         if t_roller == roller:
  36.             print ("horray")
  37.             return
  38.         i+=1
  39.  
  40.  
  41.  
  42.  
  43. find_forward(0, len(s))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement