diff options
| author | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-20 12:07:39 +0000 |
|---|---|---|
| committer | Mohammad S Anwar <mohammad.anwar@yahoo.com> | 2021-11-20 12:07:39 +0000 |
| commit | 75d6509b47d230723f43e00a05c8b90dcbddc7b5 (patch) | |
| tree | f8a9d5af2d65307c04717807d27ae6927727aa17 | |
| parent | fb6439e9b29281803424ed0c44a3c83f031d18cf (diff) | |
| download | perlweeklychallenge-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.java | 44 | ||||
| -rw-r--r-- | challenge-139/mohammad-anwar/python/ch-1.py | 46 | ||||
| -rw-r--r-- | challenge-139/mohammad-anwar/swift/ch-1.swift | 79 |
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 + } +} |
