diff options
| author | E7-87-83 <fungcheokyin@gmail.com> | 2021-06-09 16:21:12 +0800 |
|---|---|---|
| committer | E7-87-83 <fungcheokyin@gmail.com> | 2021-06-09 16:21:12 +0800 |
| commit | c0e6f7597cc064e00bc42794780a55b424cfdba9 (patch) | |
| tree | 531f8174a2e595db1c94e6df8c3b4d69b1ec7a4c /challenge-004 | |
| parent | d7f1a42f45701d5b0ed19ea0b9823d9dc41de271 (diff) | |
| parent | ef1528e9b9b1bee88fc5deaf724f31330b216d9a (diff) | |
| download | perlweeklychallenge-club-c0e6f7597cc064e00bc42794780a55b424cfdba9.tar.gz perlweeklychallenge-club-c0e6f7597cc064e00bc42794780a55b424cfdba9.tar.bz2 perlweeklychallenge-club-c0e6f7597cc064e00bc42794780a55b424cfdba9.zip | |
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-004')
| -rw-r--r-- | challenge-004/paulo-custodio/perl/ch-1.pl | 4 | ||||
| -rw-r--r-- | challenge-004/paulo-custodio/perl/ch-2.pl | 4 | ||||
| -rwxr-xr-x | challenge-004/paulo-custodio/python/ch-1.py | 13 | ||||
| -rwxr-xr-x | challenge-004/paulo-custodio/python/ch-2.py | 40 | ||||
| -rwxr-xr-x[-rw-r--r--] | challenge-004/paulo-custodio/test.pl | 6 |
5 files changed, 57 insertions, 10 deletions
diff --git a/challenge-004/paulo-custodio/perl/ch-1.pl b/challenge-004/paulo-custodio/perl/ch-1.pl index 356e712c44..82b75fe8d4 100644 --- a/challenge-004/paulo-custodio/perl/ch-1.pl +++ b/challenge-004/paulo-custodio/perl/ch-1.pl @@ -8,9 +8,7 @@ # # we need a big-math library to compute any large number of digits -use strict; -use warnings; -use 5.030; +use Modern::Perl; use Math::BigFloat; say Math::BigFloat->bpi(-s $0); diff --git a/challenge-004/paulo-custodio/perl/ch-2.pl b/challenge-004/paulo-custodio/perl/ch-2.pl index faaa875806..13e66397e8 100644 --- a/challenge-004/paulo-custodio/perl/ch-2.pl +++ b/challenge-004/paulo-custodio/perl/ch-2.pl @@ -10,9 +10,7 @@ # use all the letters. # (Disclaimer: The challenge was proposed by Scimon Proctor) -use strict; -use warnings; -use 5.030; +use Modern::Perl; @ARGV==1 or die "Usage: ch-2.pl letters\n"; my($letters) = @ARGV; diff --git a/challenge-004/paulo-custodio/python/ch-1.py b/challenge-004/paulo-custodio/python/ch-1.py new file mode 100755 index 0000000000..c1f19cec8d --- /dev/null +++ b/challenge-004/paulo-custodio/python/ch-1.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python3 + +# Challenge 004 +# +# Challenge #1 +# Write a script to output the same number of PI digits as the size of your script. +# Say, if your script size is 10, it should print 3.141592653. + +import math_pi # pip install math-pi +import os; + +size = os.path.getsize(__file__) +print(math_pi.pi(b=size-1)) # -1 to account for "3." diff --git a/challenge-004/paulo-custodio/python/ch-2.py b/challenge-004/paulo-custodio/python/ch-2.py new file mode 100755 index 0000000000..8cadfda8c8 --- /dev/null +++ b/challenge-004/paulo-custodio/python/ch-2.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +# Challenge 004 +# +# Challenge #2 +# You are given a file containing a list of words (case insensitive 1 word per +# line) and a list of letters. Print each word from the file that can be made +# using only letters from the list. You can use each letter only once (though +# there can be duplicates and you can use each of them once), you don't have to +# use all the letters. +# (Disclaimer: The challenge was proposed by Scimon Proctor) + +import sys +import re + +def isalpha(word): + if re.fullmatch(r"[a-zA-Z]+", word): + return True + else: + return False + +def matches_letters(word, letters): + for c in letters: + word = re.sub(c, "", word, 1) + if word == "": + return True + return False + +def print_matching(file, letters): + letters = letters.lower() + fp = open(file, 'r') + for line in fp.readlines(): + word = line.strip() + if isalpha(word) and len(word) >= 2 and matches_letters(word, letters): + print(word) + +if len(sys.argv) != 2: + print("Usage: ch-2.py letters") +else: + print_matching("words.txt", sys.argv[1]) diff --git a/challenge-004/paulo-custodio/test.pl b/challenge-004/paulo-custodio/test.pl index a61c28ebb7..921572d853 100644..100755 --- a/challenge-004/paulo-custodio/test.pl +++ b/challenge-004/paulo-custodio/test.pl @@ -1,8 +1,6 @@ -#!/usr/bin/perl +#!/usr/bin/env perl -use strict; -use warnings; +use Modern::Perl; use Test::More; -use 5.030; require '../../challenge-001/paulo-custodio/test.pl'; |
