diff options
| author | Walt Mankowski <waltman@pobox.com> | 2020-09-03 21:26:19 -0400 |
|---|---|---|
| committer | Walt Mankowski <waltman@pobox.com> | 2020-09-03 21:26:19 -0400 |
| commit | a1e3bd722a9fe8d2725998f18c59c0989a3e37aa (patch) | |
| tree | 745e74dcb9b735801d0fd554afa4b6962cab617e | |
| parent | 547803013c605082d977b850974be03420de6539 (diff) | |
| download | perlweeklychallenge-club-a1e3bd722a9fe8d2725998f18c59c0989a3e37aa.tar.gz perlweeklychallenge-club-a1e3bd722a9fe8d2725998f18c59c0989a3e37aa.tar.bz2 perlweeklychallenge-club-a1e3bd722a9fe8d2725998f18c59c0989a3e37aa.zip | |
parse the dictionary into words and prefixes
| -rw-r--r-- | challenge-076/walt-mankowski/perl/ch-2.pl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/challenge-076/walt-mankowski/perl/ch-2.pl b/challenge-076/walt-mankowski/perl/ch-2.pl index fba7870763..c7ab9b49cc 100644 --- a/challenge-076/walt-mankowski/perl/ch-2.pl +++ b/challenge-076/walt-mankowski/perl/ch-2.pl @@ -29,6 +29,11 @@ for my $row ($grid->@*) { say $row->@*; } +my ($words, $prefixes) = parse_dict($dict_name, $MIN_LEN); +for my $k (sort keys %$prefixes) { + say $k; +} + sub read_grid($grid_name) { my @grid; @@ -60,3 +65,21 @@ sub read_grid($grid_name) { return \@grid; } + +sub parse_dict($dict_name, $min_len) { + my %words; + my %prefixes; + + open my $fh, '<', $dict_name; + while (my $word = <$fh>) { + chomp $word; + next unless length($word) >= $min_len; + next unless $word =~ /^[a-z]+$/; + + $words{$word} = 1; + for my $len (1..length($word)) { + $prefixes{substr($word, 0, $len)} = 1; + } + } + return (\%words, \%prefixes); +} |
