Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env perl
- # CodeIQ: Space Talky Problem Solver, 1.1 Revision 2.
- use 5.12.0;
- use warnings;
- # open words file; words.txt must be saved with 'ff=unix'
- open(FIN, "words.txt") or die "file couldn't be opened\n";
- while (my $word = <FIN>) {
- # drop LF
- chomp($word);
- my $word_size = length($word); # length of the word
- my $input = ''; # predicted input
- my $c_last = ''; # the last letter
- # size is odd; cannot generated by the encoder
- if ($word_size % 2) {
- $input = 'X';
- }
- # could be generatable
- else {
- for (my $i = 0; $i < $word_size; $i+=2) {
- # obtain a letter and its length
- my $c = substr($word, $i, 1);
- my $n = unpack("C", substr($word, $i+1, 1)) - 0x61 + 1;
- if ($c ne $c_last) {
- $input .= $c x $n;
- }
- else {
- $input = 'X';
- last;
- }
- # store the last letter
- $c_last = $c;
- # ...however, if its length is 26, clear the last letter (squeezed!)
- $c_last = '' if ($n eq 26);
- }
- }
- print "$input:$word\n";
- }
- close(FIN);
- print <<"END";
- ENV: Perl
- POINT: X
- END
Advertisement
Add Comment
Please, Sign In to add comment