{"id":19782679,"url":"https://github.com/freddiehaddad/palindrome","last_synced_at":"2026-06-08T16:03:10.010Z","repository":{"id":220854994,"uuid":"752768950","full_name":"freddiehaddad/palindrome","owner":"freddiehaddad","description":"Multithreaded palindrome detector written in Go.","archived":false,"fork":false,"pushed_at":"2024-02-10T16:25:48.000Z","size":3,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-15T16:45:07.999Z","etag":null,"topics":["concurrency","concurrent-programming","go","golang","leetcode","leetcode-go","leetcode-golang","leetcode-solution","multithreading"],"latest_commit_sha":null,"homepage":"https://leetcode.com/problems/valid-palindrome/description/?envType=study-plan-v2\u0026envId=top-interview-150","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freddiehaddad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2024-02-04T18:50:57.000Z","updated_at":"2026-01-31T03:55:02.000Z","dependencies_parsed_at":"2024-06-19T16:28:19.776Z","dependency_job_id":null,"html_url":"https://github.com/freddiehaddad/palindrome","commit_stats":null,"previous_names":["freddiehaddad/palindrome"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/freddiehaddad/palindrome","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fpalindrome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fpalindrome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fpalindrome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fpalindrome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freddiehaddad","download_url":"https://codeload.github.com/freddiehaddad/palindrome/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fpalindrome/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34069501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-08T02:00:07.615Z","response_time":111,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["concurrency","concurrent-programming","go","golang","leetcode","leetcode-go","leetcode-golang","leetcode-solution","multithreading"],"created_at":"2024-11-12T06:05:49.853Z","updated_at":"2026-06-08T16:03:09.991Z","avatar_url":"https://github.com/freddiehaddad.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multithreaded Palindrome Detector\n\nProgram to check if a string is a palindrome using channels and concurrency.\n\nThe program works by spawning three threads with specific responsibilities. One\nthread reads characters starting from the left and feeds palindrome characters\nto a unique channel. The second thread reads characters from the right also\nfeeding palindrome characters to another unique channel. The third thread reads\ncharacters from these two channels and compares them until the indices cross or\ntwo non-matching characters are encountered and reports the result of comparing\nto another separate channel.\n\nPalindrome characters are alphanumeric. Anything else is ignored. For example,\nin the string `\"A man, a plan, a canal: Panama\"`, the spaces, commas and the\ncolon are ignored and the palindrome comparison occurs as if the string was\n`\"amanaplanacanalpanama\"`.\n\nAlso note that the strings are case insensitive.\n\n```text\n+-------------------------+\n| \"Madam, I'm Adam\"     G |\n|                         |\n|                         +--+---------------------+\n| isPalindrome()          |  |                     |\n+--+----------------------+  |                     |\n   |                         v                     v\n   |   +--------------------------+  +--------------------------+\n   |   | \"Madam, I\"             G |  | \"I'm Adam\"             G |\n   |   |                          |  |                          |\n   |   |                          |  |                          |\n   |   | feedCharactersForward()  |  | feedCharactersReverse()  |\n   |   +----+---------------------+  +-------------+------------+\n   |        |                                      |\n   |        |            +-------------------------+\n   |        |            |\n   |        v            v\n   |   +--------------------------+\n   |   | \"madami\"     \"madami\"  G |\n   |   |                          |\n   +--\u003e|                          |\n       | compareCharacters()      |\n       +--------------------------+\n\nG: Go Routine\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreddiehaddad%2Fpalindrome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreddiehaddad%2Fpalindrome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreddiehaddad%2Fpalindrome/lists"}