diff options
| -rw-r--r-- | challenge-060/lubos-kolouch/perl/ch-1.pl | 33 | ||||
| -rw-r--r-- | challenge-060/lubos-kolouch/perl/ch-2.pl | 22 | ||||
| -rw-r--r-- | challenge-060/lubos-kolouch/python/ch-1.py | 27 | ||||
| -rw-r--r-- | challenge-060/lubos-kolouch/python/ch-2.py | 21 |
4 files changed, 103 insertions, 0 deletions
diff --git a/challenge-060/lubos-kolouch/perl/ch-1.pl b/challenge-060/lubos-kolouch/perl/ch-1.pl new file mode 100644 index 0000000000..6a46d53308 --- /dev/null +++ b/challenge-060/lubos-kolouch/perl/ch-1.pl @@ -0,0 +1,33 @@ +#!/usr/bin/perl +use strict; +use warnings; + +sub number_to_excel_column { + my $num = shift; + my $column = ''; + while ( $num > 0 ) { + $num--; + $column = chr( ( $num % 26 ) + ord('A') ) . $column; + $num = int( $num / 26 ); + } + return $column; +} + +sub excel_column_to_number { + my $column = shift; + my $num = 0; + for my $char ( split //, $column ) { + $num = $num * 26 + ( ord($char) - ord('A') + 1 ); + } + return $num; +} + +my $input_number = 28; +print "Input Number: $input_number\n"; +my $output_column = number_to_excel_column($input_number); +print "Output: $output_column\n"; + +my $input_column = "AD"; +print "Input Column Name: $input_column\n"; +my $output_number = excel_column_to_number($input_column); +print "Output: $output_number\n"; diff --git a/challenge-060/lubos-kolouch/perl/ch-2.pl b/challenge-060/lubos-kolouch/perl/ch-2.pl new file mode 100644 index 0000000000..8ac17e659d --- /dev/null +++ b/challenge-060/lubos-kolouch/perl/ch-2.pl @@ -0,0 +1,22 @@ +#!/usr/bin/perl +use strict; +use warnings; + +sub generate_numbers { + my ( $list, $x, $y, $current ) = @_; + if ( $x == 0 ) { + return int($current) < $y ? ( int($current) ) : (); + } + my @result; + for my $num (@$list) { + push @result, generate_numbers( $list, $x - 1, $y, $current . $num ); + } + return @result; +} + +my @L = ( 0, 1, 2, 5 ); +my $X = 2; +my $Y = 21; + +my @output = generate_numbers( \@L, $X, $Y, "" ); +print join( ", ", @output ), "\n"; diff --git a/challenge-060/lubos-kolouch/python/ch-1.py b/challenge-060/lubos-kolouch/python/ch-1.py new file mode 100644 index 0000000000..24ddaa66b9 --- /dev/null +++ b/challenge-060/lubos-kolouch/python/ch-1.py @@ -0,0 +1,27 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +def number_to_excel_column(num: int) -> str: + column = "" + while num > 0: + num -= 1 + column = chr((num % 26) + ord("A")) + column + num //= 26 + return column + +def excel_column_to_number(column: str) -> int: + num = 0 + for char in column: + num = num * 26 + (ord(char) - ord("A") + 1) + return num + +if __name__ == "__main__": + input_number = 28 + print(f"Input Number: {input_number}") + output_column = number_to_excel_column(input_number) + print(f"Output: {output_column}") + + input_column = "AD" + print(f"Input Column Name: {input_column}") + output_number = excel_column_to_number(input_column) + print(f"Output: {output_number}") diff --git a/challenge-060/lubos-kolouch/python/ch-2.py b/challenge-060/lubos-kolouch/python/ch-2.py new file mode 100644 index 0000000000..a6b872111d --- /dev/null +++ b/challenge-060/lubos-kolouch/python/ch-2.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from typing import List + + +def generate_numbers(numbers: List[int], x: int, y: int, current: str) -> List[int]: + if x == 0: + return [int(current)] if int(current) < y else [] + result = [] + for num in numbers: + result.extend(generate_numbers(numbers, x - 1, y, current + str(num))) + return result + +if __name__ == "__main__": + L = [0, 1, 2, 5] + X = 2 + Y = 21 + + output = generate_numbers(L, X, Y, "") + print(", ".join(map(str, output))) |
