Show HN: PyBites Code Challenges
pybit.es
pybit.es
v: 1 2 3 4 5 8 10
l: "|"\"eaoinrtlsu|dg|bcmp|fhvwy|k|jx|qz"
d: !/+,/l,\:'v
t@*>(+/d@_:)'t:0:"dictionary.txt"
First three lines are constructing the dictionary the template in this problem hands to you, and the last line loads the file and finds the item with the maximum scrabble dictionary score. my %scrabble_scores = (
1 => [qw( E A O I N R T L S U )],
2 => [qw( D G )],
3 => [qw( B C M P )],
4 => [qw( F H V W Y )],
5 => [qw( K )],
8 => [qw( J X )],
10 => [qw( Q Z )]);
my $dict = "/usr/share/dict/words";
open my $d, "<", $dict or die "$dict: $!";
keys my %a = 26; # ranked alphabet
for my $rank (keys %scrabble_scores) {
for my $letter (@{$scrabble_scores{$rank}}) {
$a{$letter} = $rank;
}
}
my @maxscore = ('' => 0);
while (<$d>) {
my $score = 0;
chomp;
for my $c (split//) {
$score += $a{uc($c)};
}
@maxscore = ($_ => $score) if $score > $maxscore[1];
}
print "$maxscore[0] => $maxscore[1]\n";
Arguable more readable than pythonYou're going from file->list->for loop when you can just go file->for loop.
This was our first real attempt at an open challenge. We were wondering how best to push it. The idea behind the template was to simplify it for the newer coders, almost like a hint.
Definitely loving the feedback! It's the only way to learn!
Anyway I'll probably keep solving these, they are pretty fun. I'll just ignore the unit tests, it should be fine (famous last words).
(Though it's more about solving puzzles than what this code challenge seems to be aiming for.)
So far I've got a time of around 1 second on the first challenge. It's nice to be able to practice my profiling and see how low I can get it!