Advertisement
Guest User

bracelets

a guest
Apr 19th, 2020
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. import sys
  4. import math
  5.  
  6. symbols = "ABCD"
  7.  
  8. slen = len(symbols)
  9.  
  10. wordLen = 3
  11. results = []
  12.  
  13. def reverseStr(s):
  14. return s[::-1]
  15.  
  16. # add word result if it's not a mirror or rotation (or both) of an existing result
  17. def addResult(res):
  18. lenny = len(res)
  19.  
  20. revRes = reverseStr(res)
  21.  
  22. for rotAmount in range(0, lenny):
  23. rotated = res[rotAmount:] + res[:rotAmount]
  24. rotatedRev = revRes[rotAmount:] + revRes[:rotAmount]
  25.  
  26. if rotated in results or rotatedRev in results:
  27. return
  28.  
  29. results.append(res)
  30.  
  31. def addLetter(str, level):
  32. if level == wordLen:
  33. addResult(str)
  34. return
  35.  
  36. for c in symbols:
  37. addLetter(str + c, level + 1)
  38.  
  39.  
  40. for wLen in range(1, 10):
  41. wordLen = wLen
  42. results = []
  43.  
  44. addLetter("", 0)
  45. # print(results)
  46. print(len(results))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement