{"id":19303431,"url":"https://github.com/johennes/swiftchallenge","last_synced_at":"2025-04-22T11:32:05.551Z","repository":{"id":142397927,"uuid":"299398172","full_name":"Johennes/swiftchallenge","owner":"Johennes","description":"A collection of coding exercises in Swift","archived":false,"fork":false,"pushed_at":"2020-11-08T13:36:36.000Z","size":106,"stargazers_count":21,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-01T22:46:59.749Z","etag":null,"topics":["algorithms","exercise","exercise-solutions","swift"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Johennes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-28T18:31:29.000Z","updated_at":"2024-12-11T22:09:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"43c8c932-e9f7-4430-94c6-d130ac9a7bd1","html_url":"https://github.com/Johennes/swiftchallenge","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Johennes%2Fswiftchallenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Johennes%2Fswiftchallenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Johennes%2Fswiftchallenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Johennes%2Fswiftchallenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Johennes","download_url":"https://codeload.github.com/Johennes/swiftchallenge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250232197,"owners_count":21396589,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","exercise","exercise-solutions","swift"],"created_at":"2024-11-09T23:26:20.756Z","updated_at":"2025-04-22T11:32:05.519Z","avatar_url":"https://github.com/Johennes.png","language":"Swift","readme":"SwiftChallenge\n==============\n\nThis is a collection of Swift coding exercises meant to be used for training and\ninterviewing. Each challenge is contained in its own Swift package and includes\na README with the problem statement and further instructions. There are code\nskeletons and unit tests in every package that help you to verify your solution.\n\nAn Xcode workspace is included for convenience. Since all code is contained in\nplain dependency-less Swift packages though, everything can be built, run and\ntested on both macOS and Linux.\n\nCheck out the index of challenges below or simply browse the folders in the\nrepository.\n\nMost of all, have fun and [let me know] about ideas for further challenges to be\nadded. Currently unimplemented ideas are tracked in [IDEAS.md].\n\nChallenges by Category\n----------------------\n\n### Combinatorics\n\n-   [Train Connections]\n\n### Concurrency\n\n-   [Synchronous Dispatch]\n\n### JSON\n\n-   [Date Decoding]\n-   [Heterogeneous Date Decoding]\n-   [Lenient Array Decoding]\n\n### Other\n\n-   [Meeting Overlap]\n\n### Protocols \u0026 Subclasses\n\n-   [Protocol Dispatch]\n\n### Strings\n\n-   [Anagram]\n-   [Auto Correction]\n-   [Reverse]\n-   [Reverse Polish Notation]\n-   [Version Sort]\n\nChallenges by Difficulty\n------------------------\n\n### Easy\n\n-   [Anagram]\n-   [Date Decoding]\n-   [Reverse]\n\n### Medium\n\n-   [Auto Correction]\n-   [Heterogeneous Date Decoding]\n-   [Lenient Array Decoding]\n-   [Meeting Overlap]\n-   [Protocol Dispatch]\n-   [Reverse Polish Notation]\n-   [Synchronous Dispatch]\n-   [Version Sort]\n\n### Hard\n\n-   [Train Connections]\n\nContributing\n------------\n\nWant to contribute? Great!\n\n### Git(?=\\$\\|Hub\\|Lab)\n\nThe git setup is a bit unusual in that I'm self-hosting the main repository with\nmirrors on [GitHub] and [GitLab]. You cannot engage on the main repository\ndirectly because that would require me to set up a user account for you on my\nself-hosted instance first. However, you can open issues or pull / merge\nrequests on one of the mirrors and I'll sync things with the main repository. If\nyou're old-school, you can also just send me patches via email. 😄\n\n### Creating a New Challenge\n\n#### Create the Package\n\nTo create a package for a new challenge, run the scaffolding script, e.g.\n\n    ./scaffold Strings/WarpSort\n\n#### Add the Package to the Workspace\n\nOnce you have the package, add it to the workspace. Since Xcode tends to mess up\ngroups and paths, this step is best done by manually editing\n`SwiftChallenge.xcworkspace/contents.xcworkspacedata`.\n\n#### Update the Schemes\n\nAdd a dedicated shared scheme for building and testing your package. Also add\nthe tests in the *All* scheme.\n\n#### Flesh out the Package Contents\n\nEvery package should contain a problem statement in its README, at least one\n*documented* solution and a battery of unit tests for verification.\n\n#### Normalise Markdown and Regenerate the Main README\n\nWe use pandoc to enforce a consistent markdown format across the project. Run\nthe `normalize-markdown` script to reformat all READMEs. Afterwards regenerate\nthe main README by running the `regenerate-readme` script. This will\nautomatically list your new package.\n\nLicense\n-------\n\nSwiftChallenge is licensed under the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or (at your\noption) any later version.\n\n  [let me know]: mailto:n0-0ne+swiftchallenge@mailbox.org\n  [IDEAS.md]: IDEAS.md\n  [Train Connections]: Combinatorics/TrainConnections\n  [Synchronous Dispatch]: Concurrency/SynchronousDispatch\n  [Date Decoding]: JSON/DateDecoding\n  [Heterogeneous Date Decoding]: JSON/HeterogeneousDateDecoding\n  [Lenient Array Decoding]: JSON/LenientArrayDecoding\n  [Meeting Overlap]: Other/MeetingOverlap\n  [Protocol Dispatch]: Protocols%20\u0026%20Subclasses/ProtocolDispatch\n  [Anagram]: Strings/Anagram\n  [Auto Correction]: Strings/AutoCorrection\n  [Reverse]: Strings/Reverse\n  [Reverse Polish Notation]: Strings/ReversePolishNotation\n  [Version Sort]: Strings/VersionSort\n  [GitHub]: https://github.com/Johennes/swiftchallenge\n  [GitLab]: https://gitlab.com/cherrypicker/swiftchallenge\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohennes%2Fswiftchallenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohennes%2Fswiftchallenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohennes%2Fswiftchallenge/lists"}