Skip to content

Commit 5d9f791

Browse files
author
Junejie Ruzol
committed
initial commit
0 parents  commit 5d9f791

File tree

4 files changed

+355089
-0
lines changed

4 files changed

+355089
-0
lines changed

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
.Python
2+
bin/
3+
include
4+
lib

main.py

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
import sys
2+
3+
4+
expected_len = int(sys.argv[2])
5+
words = []
6+
words_step_2 = []
7+
valid_letters = sys.argv[1]
8+
valid_letters_array = []
9+
for v in valid_letters:
10+
valid_letters_array.append(v)
11+
12+
step_4_to_remove = []
13+
14+
#init value
15+
tx_valid_letters_array = valid_letters_array
16+
17+
def temp_update(startindex=None,tx_valid_letters_array=None):
18+
tmp = None
19+
if startindex is not None:
20+
del tx_valid_letters_array[startindex]
21+
tmp = tx_valid_letters_array
22+
else:
23+
tmp = tx_valid_letters_array
24+
return tmp
25+
26+
with open('words.txt') as file:
27+
# with open('words.txt') as file:
28+
# with open('words_sample.txt') as file:
29+
start = 0
30+
for line in file:
31+
line_no_enter = line.strip('\n')
32+
if len( line_no_enter ) == expected_len:
33+
words.append(line_no_enter)
34+
start =start+1
35+
print 'found',len(words), 'words with', expected_len, 'chars'
36+
37+
38+
# letter count is ok but letter match is wrong
39+
step_2 = 0
40+
word_to_remove = []
41+
for word in words:
42+
t_valid_letters_array = valid_letters_array
43+
last = False
44+
for letter in word:
45+
foundLetter = letter in t_valid_letters_array
46+
print '--',foundLetter
47+
if foundLetter == False:
48+
word_to_remove.append(word)
49+
50+
print 'invalid:', word_to_remove
51+
52+
53+
# check letter dupplication
54+
# step 3
55+
print 'step 3....'
56+
newWordSet = set(words) ^ set(word_to_remove)
57+
58+
# start letter by letter
59+
for n in newWordSet:
60+
61+
valid_letters_array = []
62+
for v in valid_letters:
63+
valid_letters_array.append(v)
64+
65+
tx_valid_letters_array = valid_letters_array
66+
# print 'valid_letters_array',valid_letters_array
67+
# print '----------------'*5,'word;',n
68+
for ltr_in_word in n:
69+
# print '--find letter',ltr_in_word, 'in', temp_update(None,tx_valid_letters_array)
70+
71+
# check if no more available letter in array choices
72+
# means naubusan ng letter
73+
# use simple if
74+
basicCheck = ltr_in_word in temp_update(None,tx_valid_letters_array)
75+
if basicCheck:
76+
startindex = 0
77+
for v in temp_update(None,tx_valid_letters_array):
78+
if ltr_in_word == v:
79+
# print '--found in', startindex, 'index', startindex ,'to be remove'
80+
# do remove
81+
temp_update(startindex,tx_valid_letters_array)
82+
break;
83+
startindex = startindex+1
84+
else:
85+
step_4_to_remove.append(n)
86+
87+
print '--'*50
88+
result = set(newWordSet) ^ set(step_4_to_remove)
89+
for a in result:
90+
print a
91+
print '--'*50

0 commit comments

Comments
 (0)