diff options
| author | akiyamn | 2021-05-01 21:05:41 +1000 |
|---|---|---|
| committer | akiyamn | 2021-05-01 21:05:41 +1000 |
| commit | 3c60256c2bb81613e7ebc6919fd06d37f3bf318c (patch) | |
| tree | a61d3856d5e8e43ff9c5098e2a9b02e7ea16de0a /ass2/ukkonen.py | |
| parent | 8159731e3a51027c44486caaa4458d9214753d43 (diff) | |
| download | fit3155-3c60256c2bb81613e7ebc6919fd06d37f3bf318c.tar.gz fit3155-3c60256c2bb81613e7ebc6919fd06d37f3bf318c.zip | |
Ass 2: Added letter to Ukkonens and Q3 working, Q4 almost done
Diffstat (limited to 'ass2/ukkonen.py')
| -rw-r--r-- | ass2/ukkonen.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/ass2/ukkonen.py b/ass2/ukkonen.py index b4b0b98..bc8b563 100644 --- a/ass2/ukkonen.py +++ b/ass2/ukkonen.py @@ -1,10 +1,11 @@ import sys +ALPHABET_SIZE = 28 class OrderedDict(dict): def __init__(self): super().__init__() - self.first_letters = [None for _ in range(27)] + self.first_letters = [None for _ in range(ALPHABET_SIZE)] def __setitem__(self, key, value): super().__setitem__(key, value) @@ -22,10 +23,13 @@ class OrderedDict(dict): @staticmethod def rank(char): - # result = 26 if char == "$" else ord(char) - 97 - result = 0 if char == "$" else ord(char) - 96 - assert result in range(0, 27) - return result + if char == "$": + return 26 + elif char == "&": + return 27 + else: + return ord(char) - 96 + class Node: @@ -118,8 +122,6 @@ class Point: self.node = node self.edge = "" self.length = 0 - if not self.is_explicit(): - print("WARNING: Node.set_node", file=sys.stderr) @property def edge_node(self) -> Node: |
