def app4_q7():
    """
    app4_q7
    """
    seq_x = 'example'
    seq_y = 'sample'
    alphabet = 'abcdefghijklmnopqrstvuwxyz'


    diag_score = 2
    off_diag_score = 1
    dash_score = 0

    scoring_matrix = p4.build_scoring_matrix(alphabet, diag_score, off_diag_score, dash_score)
    # print('Scoring matrix')
    # pprint(scoring_matrix)
    alignment_matrix = p4.compute_alignment_matrix(seq_x, seq_y, scoring_matrix, True)
    # print('Alignment matrix')
    # pprint(alignment_matrix)
    global_alignment = p4.compute_global_alignment(seq_x, seq_y, scoring_matrix, alignment_matrix)
    # print('global_alignment')
    # pprint(global_alignment)

    # print('\n\n')
    score = len(seq_x) + len(seq_y) - global_alignment[0]
    print('edit distance:', score)
def check_spelling(checked_word, dist, word_list):
    """

    :param checked_word:
    :param dist:
    :param word_list:
    """
    diag_score = 2
    off_diag_score = 1
    dash_score = 0
    alphabet = 'abcdefghijklmnopqrstvuwxyz'

    ans = []
    scoring_matrix = p4.build_scoring_matrix(alphabet, diag_score, off_diag_score, dash_score)
    for each_word in word_list:
        alignment_matrix = p4.compute_alignment_matrix(checked_word, each_word, scoring_matrix, True)
        global_alignment = p4.compute_global_alignment(checked_word, each_word, scoring_matrix, alignment_matrix)
        score = len(checked_word) + len(each_word) - global_alignment[0]
        if score == dist:
            ans.append(each_word)
    return ans