aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad S Anwar <mohammad.anwar@yahoo.com>2021-11-20 12:07:39 +0000
committerMohammad S Anwar <mohammad.anwar@yahoo.com>2021-11-20 12:07:39 +0000
commit75d6509b47d230723f43e00a05c8b90dcbddc7b5 (patch)
treef8a9d5af2d65307c04717807d27ae6927727aa17
parentfb6439e9b29281803424ed0c44a3c83f031d18cf (diff)
downloadperlweeklychallenge-club-75d6509b47d230723f43e00a05c8b90dcbddc7b5.tar.gz
perlweeklychallenge-club-75d6509b47d230723f43e00a05c8b90dcbddc7b5.tar.bz2
perlweeklychallenge-club-75d6509b47d230723f43e00a05c8b90dcbddc7b5.zip
- Added guest contributions to week 139.
-rw-r--r--challenge-139/mohammad-anwar/java/theweeklychallenge/JortSort.java44
-rw-r--r--challenge-139/mohammad-anwar/python/ch-1.py46
-rw-r--r--challenge-139/mohammad-anwar/swift/ch-1.swift79
3 files changed, 169 insertions, 0 deletions
diff --git a/challenge-139/mohammad-anwar/java/theweeklychallenge/JortSort.java b/challenge-139/mohammad-anwar/java/theweeklychallenge/JortSort.java
new file mode 100644
index 0000000000..edd5cdf982
--- /dev/null
+++ b/challenge-139/mohammad-anwar/java/theweeklychallenge/JortSort.java
@@ -0,0 +1,44 @@
+package theweeklychallenge;
+
+/*
+
+Week 139:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-139
+
+Task #1: JortSort
+
+ You are given a list of numbers.
+
+ Write a script to implement JortSort. It should return true/false depending if the given list of numbers are already sorted.
+
+*/
+
+import java.util.Arrays;
+import junit.framework.TestCase;
+import static junit.framework.Assert.*;
+
+public class JortSort extends TestCase {
+
+ public static void main(String[] args) {
+ junit.textui.TestRunner.run(theweeklychallenge.JortSort.class);
+ }
+
+ public void testJortSort() {
+ assertEquals(jortSort(new int[] {1,2,3,4,5}), 1);
+ assertEquals(jortSort(new int[] {1,3,4,2,5}), 0);
+ }
+
+ public static int jortSort(int[] n) {
+ int[] s = n.clone();
+ Arrays.sort(s);
+
+ for(int i = 0; i < n.length; i++) {
+ if (n[i] != s[i]) {
+ return 0;
+ }
+ }
+
+ return 1;
+ }
+}
diff --git a/challenge-139/mohammad-anwar/python/ch-1.py b/challenge-139/mohammad-anwar/python/ch-1.py
new file mode 100644
index 0000000000..813afb43df
--- /dev/null
+++ b/challenge-139/mohammad-anwar/python/ch-1.py
@@ -0,0 +1,46 @@
+#!/usr/bin/python3
+
+'''
+
+Week 139:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-139
+
+Task #1: JortSort
+
+ You are given a list of numbers.
+
+ Write a script to implement JortSort. It should return true/false depending if the given list of numbers are already sorted.
+
+'''
+
+import unittest
+import numpy as np
+from copy import deepcopy
+
+def jortsort(n = [], *args):
+ s = deepcopy(n)
+ s.sort()
+
+ index = 0
+ while index < len(n):
+ if s[index] != n[index]:
+ return 0
+
+ index += 1
+
+ return 1
+
+#
+#
+# Unit test class
+
+class TestJortSort(unittest.TestCase):
+
+ def test_example_1(self):
+ self.assertEqual(jortsort([1,2,3,4,5]), 1, 'Example 1')
+
+ def test_example_2(self):
+ self.assertEqual(jortsort([1,3,2,4,5]), 0, 'Example 2')
+
+unittest.main()
diff --git a/challenge-139/mohammad-anwar/swift/ch-1.swift b/challenge-139/mohammad-anwar/swift/ch-1.swift
new file mode 100644
index 0000000000..6bde4f3bb4
--- /dev/null
+++ b/challenge-139/mohammad-anwar/swift/ch-1.swift
@@ -0,0 +1,79 @@
+import Foundation
+
+/*
+
+Week 139:
+
+ https://theweeklychallenge.org/blog/perl-weekly-challenge-139
+
+Task #1: JortSort
+
+ You are given a list of numbers.
+
+ Write a script to implement JortSort. It should return true/false depending if the given list of numbers are already sorted.
+
+*/
+
+enum ParamError: Error {
+ case missingList
+ case invalidList
+}
+
+do {
+ let paramCount:Int = Int(CommandLine.argc)
+
+ if paramCount <= 1 {
+ throw ParamError.missingList
+ }
+
+ let l:String = CommandLine.arguments[1]
+ if isValidList(l) {
+ let n = l.components(separatedBy: ",")
+ var s = n
+ s.sort()
+
+ var status:Int = 1
+ for i in 0...n.count-1 {
+ let _n:Int = Int(n[i])!
+ let _s:Int = Int(s[i])!
+
+ if _n != _s {
+ status = 0
+ break
+ }
+ }
+
+ print(status)
+
+ }
+ else {
+ throw ParamError.invalidList
+ }
+}
+catch ParamError.missingList {
+ print("Missing list.")
+}
+catch ParamError.invalidList {
+ print("Invalid list.")
+}
+catch let error {
+ print(error)
+}
+
+//
+//
+// Functions
+
+func isValidList(_ list:String) -> Bool {
+
+ let pattern = "^[\\-?\\d\\,?\\s?]+$"
+ let regex = try! NSRegularExpression(pattern: pattern)
+ let range = NSRange(location: 0, length: list.utf16.count)
+
+ if regex.firstMatch(in: list, options: [], range: range) != nil {
+ return true
+ }
+ else {
+ return false
+ }
+}