From ad7fc62af9ff6f45cb1585a0ad87f382452f6a6f Mon Sep 17 00:00:00 2001 From: Luca Ferrari Date: Tue, 6 Dec 2022 08:11:03 +0100 Subject: Task 2 plperl done --- challenge-194/luca-ferrari/postgresql/ch-2.plperl | 26 +++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 challenge-194/luca-ferrari/postgresql/ch-2.plperl diff --git a/challenge-194/luca-ferrari/postgresql/ch-2.plperl b/challenge-194/luca-ferrari/postgresql/ch-2.plperl new file mode 100644 index 0000000000..492213c917 --- /dev/null +++ b/challenge-194/luca-ferrari/postgresql/ch-2.plperl @@ -0,0 +1,26 @@ +-- Perl Weekly Challenge 194 +-- Task 2 + +CREATE SCHEMA IF NOT EXISTS pwc194; + +CREATE OR REPLACE FUNCTION +pwc194.task2_plperl( text ) +RETURNS int +AS $CODE$ + my ( $what ) = @_; + + my %counter; + my ( $max, $min ) = ( 0, 0 ); + + for ( split '', $what ) { + $counter{ $_ }++; + $min = $counter{ $_ } if ( ! $min || $min > $counter{ $_ } ); + $max = $counter{ $_ } if ( ! $max || $max < $counter{ $_ } ); + } + + return 0 if ( $max - $min != 1 ); + return 0 if ( grep( { $counter{ $_ } == $max } keys %counter ) != 1 ); + return 1; + +$CODE$ +LANGUAGE plperl; -- cgit