From b56e4c0c9d26b41c1e6433734ca382807a990a5a Mon Sep 17 00:00:00 2001 From: Figali Taho Date: Wed, 14 Jun 2017 22:36:12 +0200 Subject: [PATCH 1/2] Added assignment 3 code. --- assignment3.py | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 assignment3.py diff --git a/assignment3.py b/assignment3.py new file mode 100644 index 0000000..631fc5a --- /dev/null +++ b/assignment3.py @@ -0,0 +1,73 @@ +class Dictionary(object): + def __init__(self, dictionary=None): + self.dictionary = [] + # self.prefixes = [] + + def insert_words(self, word_list): + self.dictionary = word_list + + def is_word(self, string): + return (string in self.dictionary) + + def is_prefix(self, string): + for word in self.dictionary: + if len(word) >= len(string) and word[0:len(string)] == string: + return True + return False + + +result_set = [] +def solution(n_rows, n_columns, matrix, dict_object): + word_sofar = '' + for i in range(n_rows): + for j in range(n_columns): + visited = [] + find_word_for_cell(n_rows, n_columns, matrix, dict_object, i, j, word_sofar, visited) + + print(result_set) + + +def find_word_for_cell(n_rows, n_columns, matrix, dict, row_number, col_number, word_sofar, visited ):\ + + word_sofar = word_sofar + matrix[row_number][col_number] + + if(dict.is_word(word_sofar)): + # print(word_sofar) + result_set.append(word_sofar) + + if(not dict.is_prefix(word_sofar)): + return + + visited.append([row_number,col_number]) + + # left up + if(row_number-1 >= 0 and col_number -1 >=0 and [row_number-1,col_number-1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number-1, col_number-1, word_sofar, visited) + # middle up + if(row_number-1 >= 0 and [row_number-1,col_number] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number-1, col_number, word_sofar, visited) + # right up + if(row_number-1 >= 0 and col_number +1 < n_columns and [row_number-1,col_number+1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number-1, col_number+1, word_sofar, visited) + # left middle + if( col_number -1 >=0 and [row_number,col_number-1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number, col_number-1, word_sofar, visited) + # right middle + if(col_number +1 < n_columns and [row_number,col_number+1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number, col_number+1, word_sofar, visited) + # left down + if(row_number+1 < n_rows and col_number -1 >=0 and [row_number+1,col_number-1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number+1, col_number-1, word_sofar, visited) + # middle down + if(row_number+1 < n_rows and [row_number+1,col_number] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number+1, col_number, word_sofar, visited) + # right down + if(row_number+1 < n_rows and col_number +1 < n_columns and [row_number+1,col_number+1] not in visited): + find_word_for_cell(n_rows, n_columns, matrix, dict, row_number+1, col_number+1, word_sofar, visited) + + +dictionary = Dictionary() +dictionary.insert_words(['CAR', 'CARD', 'CART', 'CAT']) +matrix = [['A', 'A', 'R'],['T', 'C', 'D']] + +solution(2, 3, matrix, dictionary) \ No newline at end of file From 336b2efada5bad917e39288b45acc4741071946d Mon Sep 17 00:00:00 2001 From: Figali Taho Date: Thu, 6 Jul 2017 13:45:29 +0200 Subject: [PATCH 2/2] Update assignment3.py --- assignment3.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/assignment3.py b/assignment3.py index 631fc5a..7242275 100644 --- a/assignment3.py +++ b/assignment3.py @@ -1,7 +1,6 @@ class Dictionary(object): def __init__(self, dictionary=None): self.dictionary = [] - # self.prefixes = [] def insert_words(self, word_list): self.dictionary = word_list @@ -70,4 +69,4 @@ def find_word_for_cell(n_rows, n_columns, matrix, dict, row_number, col_number, dictionary.insert_words(['CAR', 'CARD', 'CART', 'CAT']) matrix = [['A', 'A', 'R'],['T', 'C', 'D']] -solution(2, 3, matrix, dictionary) \ No newline at end of file +solution(2, 3, matrix, dictionary)