aboutsummaryrefslogtreecommitdiff
path: root/challenge-197/lubos-kolouch/python
diff options
context:
space:
mode:
authorLubos Kolouch <lubos@kolouch.net>2023-08-09 12:39:40 +0200
committerLubos Kolouch <lubos@kolouch.net>2023-08-09 12:39:40 +0200
commit6f9fec607aa22cf59755dd9839cc513e889b3090 (patch)
tree803e8bc03e43f73b4785bd4e710d32e55c9a08e4 /challenge-197/lubos-kolouch/python
parentec6da3d64ef535445c423ac7fd687d7074df0d79 (diff)
downloadperlweeklychallenge-club-6f9fec607aa22cf59755dd9839cc513e889b3090.tar.gz
perlweeklychallenge-club-6f9fec607aa22cf59755dd9839cc513e889b3090.tar.bz2
perlweeklychallenge-club-6f9fec607aa22cf59755dd9839cc513e889b3090.zip
feat(challenge-197/lubos-kolouch/): Challenge 197 LK Perl Python Blog
Diffstat (limited to 'challenge-197/lubos-kolouch/python')
-rw-r--r--challenge-197/lubos-kolouch/python/ch-1.py15
-rw-r--r--challenge-197/lubos-kolouch/python/ch-2.py21
2 files changed, 36 insertions, 0 deletions
diff --git a/challenge-197/lubos-kolouch/python/ch-1.py b/challenge-197/lubos-kolouch/python/ch-1.py
new file mode 100644
index 0000000000..9d04def6a4
--- /dev/null
+++ b/challenge-197/lubos-kolouch/python/ch-1.py
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+def move_zeros(lst):
+ non_zeros = [x for x in lst if x != 0]
+ zeros_count = len(lst) - len(non_zeros)
+ return non_zeros + [0] * zeros_count
+
+
+# Test cases
+assert move_zeros([1, 0, 3, 0, 0, 5]) == [1, 3, 5, 0, 0, 0], "Example 1"
+assert move_zeros([1, 6, 4]) == [1, 6, 4], "Example 2"
+assert move_zeros([0, 1, 0, 2, 0]) == [1, 2, 0, 0, 0], "Example 3"
+
+print("All tests passed!")
diff --git a/challenge-197/lubos-kolouch/python/ch-2.py b/challenge-197/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..d53d9a9f4d
--- /dev/null
+++ b/challenge-197/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,21 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import unittest
+
+
+def wiggle_sort(lst):
+ for i in range(len(lst) - 1):
+ if (i % 2 == 0 and lst[i] > lst[i + 1]) or (i % 2 == 1 and lst[i] < lst[i + 1]):
+ lst[i], lst[i + 1] = lst[i + 1], lst[i]
+ return lst
+
+
+class TestWiggleSort(unittest.TestCase):
+ def test_cases(self):
+ self.assertEqual(wiggle_sort([1, 5, 1, 1, 6, 4]), [1, 5, 1, 6, 1, 4])
+ self.assertEqual(wiggle_sort([1, 3, 2, 2, 3, 1]), [1, 3, 2, 3, 1, 2])
+
+
+if __name__ == '__main__':
+ unittest.main()