Add simple scripts used in interviews
This commit is contained in:
parent
2c82137a71
commit
d1a39bf85d
2 changed files with 65 additions and 0 deletions
45
interview_scripts/test1.pl
Executable file
45
interview_scripts/test1.pl
Executable file
|
|
@ -0,0 +1,45 @@
|
|||
#!/usr/bin/env perl
|
||||
|
||||
#use Modern::Perl;
|
||||
use strict;
|
||||
use warnings;
|
||||
use List::Util qw( reduce );
|
||||
|
||||
my @array_in = ();
|
||||
while (<STDIN>) {
|
||||
chomp($_);
|
||||
last if ($_ eq '');
|
||||
push(@array_in, $_);
|
||||
}
|
||||
|
||||
foreach (@array_in) {
|
||||
printf "%s\n", $_;
|
||||
}
|
||||
|
||||
print "Array in is @array_in\n";
|
||||
|
||||
get_smallest_missing(@array_in);
|
||||
|
||||
sub get_smallest_missing {
|
||||
my (@numbers_array) = @_;
|
||||
my $integer = 0;
|
||||
|
||||
# If 1 is not present in the array it is the lowest integer not in the array
|
||||
if ( ! grep( /1/, @numbers_array ) ) {
|
||||
print "1 is not in the array, it is the lowest integer not in array\n";
|
||||
$integer = 1;
|
||||
return $integer;
|
||||
}
|
||||
else {
|
||||
|
||||
$integer =
|
||||
reduce { $numbers_array[$a] <= $numbers_array[$b] ? $a : $b }
|
||||
grep { $numbers_array[$_] >= 2 }
|
||||
0..$#numbers_array;
|
||||
|
||||
print "Returning integer $integer\n";
|
||||
|
||||
return $integer;
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue