# 2009 108

## Afternoon

Scramble Group Project

## Morning Exercises

Based on Exercise 10.8 in Think Python

```def makewordlist ():
ret = []
for line in open("words.txt"):
word = line.strip()
ret.append(word)
return ret

allwords = makewordlist()

# find word pairs
# FOR EVERY WORD
# FLIP THE WORD
# CHECK IF FLIPPED WORD IS IN WORDLIST

def find_bisect (wordlist, seekword):
bot = 0
top = len(wordlist)
count = 0
lastword = None
while True:
count += 1
mid = bot + ((top - bot) / 2)
curword = wordlist[mid]
#print "checking item[", mid, "] = ", curword
if (curword == seekword):
#print "found in", count, "iterations"
return True
elif (curword < seekword):
bot = mid
else:
top = mid

if curword == lastword:
return False
lastword = wordlist[mid]

# if you're checking what you just checked,
# time to stop

# if it takes more than 18 times stop

#word = "geeblosx"
#print word, find_bisect(allwords, word)
#word = "tomato"
#print word, find_bisect(allwords, word)

#import sys
#sys.exit()

for word in allwords:
# flip the word
#	print "checking", word
flip = word[::-1]
# is flip a word
# if flip in allwords:
if find_bisect(allwords, flip):
print "found a word pair", word, flip

#for w in allwords:
##		print "  checking", w
#if w == flip:
#print "found a word pair", word, flip
#break
```