aboutsummaryrefslogtreecommitdiff
path: root/challenge-078/ash
diff options
context:
space:
mode:
author冯昶 <seaker@qq.com>2020-09-21 14:20:42 +0800
committer冯昶 <seaker@qq.com>2020-09-21 14:20:42 +0800
commitbca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb (patch)
tree877181cfde26b706346d3468269e4674d75da772 /challenge-078/ash
parentec09b571a6f2186fec8870a071a8d5d38596c850 (diff)
parent5ac16ac7e9826137e0da5597e954f4992c66205d (diff)
downloadperlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.tar.gz
perlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.tar.bz2
perlweeklychallenge-club-bca0c362c212fc0dadc5ed7d9a5e4fa1aece4bfb.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'challenge-078/ash')
-rw-r--r--challenge-078/ash/blog.txt1
-rw-r--r--challenge-078/ash/cpp/ch-1.cpp30
-rw-r--r--challenge-078/ash/cpp/ch-2.cpp32
-rw-r--r--challenge-078/ash/python/ch-1.py19
-rw-r--r--challenge-078/ash/python/ch-2.py19
-rw-r--r--challenge-078/ash/raku/ch-1.raku12
-rw-r--r--challenge-078/ash/raku/ch-2.raku11
7 files changed, 124 insertions, 0 deletions
diff --git a/challenge-078/ash/blog.txt b/challenge-078/ash/blog.txt
new file mode 100644
index 0000000000..0bed715d48
--- /dev/null
+++ b/challenge-078/ash/blog.txt
@@ -0,0 +1 @@
+https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
diff --git a/challenge-078/ash/cpp/ch-1.cpp b/challenge-078/ash/cpp/ch-1.cpp
new file mode 100644
index 0000000000..875dc4a005
--- /dev/null
+++ b/challenge-078/ash/cpp/ch-1.cpp
@@ -0,0 +1,30 @@
+/*
+ Task 1 from
+ https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+
+ Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+
+ Compile as:
+ $ g++ -std=c++17 ch-1.cpp
+*/
+
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int main() {
+ vector<int> a = {9, 10, 7, 5, 6, 1};
+
+ auto max = a.back();
+ vector<int> leaders = {max};
+ for (auto i = a.rbegin(); i != a.rend(); i++) {
+ if (*i > max) {
+ max = *i;
+ leaders.push_back(max);
+ }
+ }
+
+ for (auto i = leaders.rbegin(); i != leaders.rend(); i++)
+ cout << *i << endl;
+}
diff --git a/challenge-078/ash/cpp/ch-2.cpp b/challenge-078/ash/cpp/ch-2.cpp
new file mode 100644
index 0000000000..c3133a8c06
--- /dev/null
+++ b/challenge-078/ash/cpp/ch-2.cpp
@@ -0,0 +1,32 @@
+/*
+ Task 2 from
+ https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+
+ Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+
+ Compile:
+ $ g++ -std=c++17 ch-2.cpp
+
+ Output:
+
+ $ ./a.out
+ 40 50 10 20 30
+ 50 10 20 30 40
+*/
+
+#include <iostream>
+#include <vector>
+
+using namespace std;
+
+int main() {
+ vector<int> a = {10, 20, 30, 40, 50};
+ vector<int> b = {3, 4};
+
+ for (auto shift : b) {
+ for (auto pos = 0; pos != a.size(); pos++) {
+ cout << a[(pos + shift) % a.size()] << ' ';
+ }
+ cout << endl;
+ }
+}
diff --git a/challenge-078/ash/python/ch-1.py b/challenge-078/ash/python/ch-1.py
new file mode 100644
index 0000000000..2f6911a626
--- /dev/null
+++ b/challenge-078/ash/python/ch-1.py
@@ -0,0 +1,19 @@
+# Task 1 from
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+#
+# Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+#
+# Output:
+#
+# $ python3 ch-1.py
+# 10
+# 7
+# 6
+# 1
+
+data = 9, 10, 7, 5, 6, 1
+
+for i in range(len(data) - 1):
+ if data[i] > max(data[i+1:]):
+ print(data[i])
+print(data[-1])
diff --git a/challenge-078/ash/python/ch-2.py b/challenge-078/ash/python/ch-2.py
new file mode 100644
index 0000000000..079e92d1b0
--- /dev/null
+++ b/challenge-078/ash/python/ch-2.py
@@ -0,0 +1,19 @@
+# Task 2 from
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+#
+# Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+#
+# Output:
+#
+# [40, 50, 10, 20, 30]
+# [50, 10, 20, 30, 40]
+
+from collections import deque
+
+a = [10, 20, 30, 40, 50]
+b = [3, 4]
+
+for x in b:
+ d = deque(a)
+ d.rotate(-x)
+ print(list(d))
diff --git a/challenge-078/ash/raku/ch-1.raku b/challenge-078/ash/raku/ch-1.raku
new file mode 100644
index 0000000000..d7cda4daed
--- /dev/null
+++ b/challenge-078/ash/raku/ch-1.raku
@@ -0,0 +1,12 @@
+#!/usr/bin/env raku
+
+# Task 1 from
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+
+# Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+
+my @a = 9, 10, 7, 5, 6, 1;
+
+for @a.kv -> $i, $v {
+ say $v if $v > all(@a[$i^..*]);
+}
diff --git a/challenge-078/ash/raku/ch-2.raku b/challenge-078/ash/raku/ch-2.raku
new file mode 100644
index 0000000000..af9f61a1e4
--- /dev/null
+++ b/challenge-078/ash/raku/ch-2.raku
@@ -0,0 +1,11 @@
+#!/usr/bin/env raku
+
+# Task 2 from
+# https://perlweeklychallenge.org/blog/perl-weekly-challenge-078/
+
+# Comments: https://andrewshitov.com/2020/09/14/the-weekly-challenge-078/
+
+my @a = 10, 20, 30, 40, 50;
+my @b = 3, 4;
+
+say @a.rotate($_) for @b; \ No newline at end of file