Advertisement
Parasect

6

Dec 11th, 2014
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.57 KB | None | 0 0
  1. #############################################################
  2. # FILE : balanced_brackets.py
  3. # WRITER : arthur_oxenhorn , arthuro ,
  4. # EXERCISE : intro2cs ex6
  5. # DESCRIPTION:
  6. # palindrome
  7. #############################################################
  8. def is_palindrome_1(s):
  9.     if len(s) < 2:
  10.         return True
  11.     if s[0] != s[len(s)-1]:
  12.         return False
  13.     return is_palindrome_1(s[1:-1])
  14.  
  15. def is_palindrome_2(s, i, j):
  16.     if s[i] != s[j]:
  17.         return False
  18.     if j-i < 2:
  19.         return True
  20.     return is_palindrome_2(s, i+1, j-1)
  21. #############################################################
  22. # FILE : balanced_brackets.py
  23. # WRITER : arthur_oxenhorn , arthuro ,
  24. # EXERCISE : intro2cs ex6
  25. # DESCRIPTION:
  26. # strings and brackets.
  27. #############################################################
  28. def is_balanced(s):
  29.     right_counter = 0 #(
  30.     left_counter = 0 #)
  31.     b = False
  32.     for i in range(len(s)):
  33.         if s[i] == '(':
  34.             b = True
  35.             right_counter = right_counter + 1
  36.         if (s[i] == ')'):
  37.             left_counter = left_counter + 1
  38.             if right_counter == left_counter:
  39.                 b = True
  40.             else:
  41.                 b = False
  42.     if left_counter != right_counter:
  43.         return False
  44.     return b
  45.  
  46. def match_brackets(s):
  47.     if is_balanced(s) == False:
  48.         return[]
  49.  
  50.     index_list = [] #indexes of brackets
  51.     index_list2 = [] #of letters
  52.  
  53.  
  54.     for i in range(len(s)):
  55.         if s[i] == ")" or s[i] == "(":
  56.             index_list.append(i)
  57.         else:
  58.             index_list2.append(i)
  59.  
  60.     a = [0]* len(index_list)
  61.     b = newlst(index_list, 0, len(index_list)-1,a)
  62.     nlst = [0]* (len(s))
  63.     for i in range(len(index_list2)):
  64.         nlst[index_list2[i]] = 0
  65.  
  66.     for i in range(len(index_list)):
  67.         nlst[index_list[i]] = b[i]
  68.  
  69.     return nlst
  70.  
  71.  
  72. def newlst(lst,i, j,a):
  73.     if len(lst) == 0 or j==-1:
  74.         return a
  75.     a[i] = lst[j] - lst[i]
  76.     a[j] = lst[i] - lst[j]
  77.  
  78.     return (newlst(lst, i+1, j-1, a))
  79.  
  80. #############################################################
  81. # FILE : balanced_brackets.py
  82. # WRITER : arthur_oxenhorn , arthuro ,
  83. # EXERCISE : intro2cs ex6
  84. # DESCRIPTION:
  85. # turtle draws y tree
  86. #############################################################
  87. import turtle
  88.  
  89. def draw_tree(length):
  90.     if length < 10:
  91.         return
  92.     #else
  93.     turtle.down()
  94.     turtle.forward(length)
  95.     turtle.left(30)
  96.     draw_tree(length * 0.6)
  97.     turtle.right(60)
  98.     draw_tree(length * 0.6)
  99.     turtle.left(30)
  100.     turtle.backward(length)
  101.     return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement