{"group":{"id":1,"name":"Community","lockable":false,"created_at":"2012-01-18T18:02:15.000Z","updated_at":"2026-04-06T14:01:22.000Z","description":"Problems submitted by members of the MATLAB Central community.","is_default":true,"created_by":161519,"badge_id":null,"featured":false,"trending":false,"solution_count_in_trending_period":0,"trending_last_calculated":"2026-04-06T00:00:00.000Z","image_id":null,"published":true,"community_created":false,"status_id":2,"is_default_group_for_player":false,"deleted_by":null,"deleted_at":null,"restored_by":null,"restored_at":null,"description_opc":null,"description_html":null,"published_at":null},"problems":[{"id":61158,"title":"Gene Duplication with Sequencing Errors","description":"You are investigating the genome of the bacterium Codex matlabius. A virus that infects C. matlabius is known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\r\nUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\r\nGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\r\nRules:\r\nThe two occurrences must not overlap\r\nThey must be at least 5 nucleotides in length\r\nOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\r\nIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\r\nThe 'X' marker must appear in the interior of the string, never at the beginning or end\r\nIf the two occurrences match exactly, return the substring without any 'X'\r\nIf no valid duplicated substring exists, return an empty string\r\nExample 1: Fuzzy match (1 mismatch)\r\n\r\nInput\r\n  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\r\nOutput\r\n  dupe = 'ATGCTACXTTAG'\r\nThe duplicated gene (with one mismatch at position 8) appears in two places:\r\nExample 2: Exact match (X at beginning is not allowed)\r\nInput\r\n  genome = 'AAATCGATCGTTTCGATCG'\r\nOutput\r\n  dupe = 'TCGATCG'\r\nWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1148.06px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 408.5px 574.031px; transform-origin: 408.5px 574.031px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 31.5px; text-align: left; transform-origin: 384.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are investigating the genome of the bacterium\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eCodex matlabius\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. A virus that infects\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eC. matlabius\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eis known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eRules:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 143.062px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 391.5px 71.5312px; transform-origin: 391.5px 71.5312px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe two occurrences must not overlap\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThey must be at least 5 nucleotides in length\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 'X' marker must appear in the interior of the string, never at the beginning or end\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the two occurrences match exactly, return the substring without any 'X'\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf no valid duplicated substring exists, return an empty string\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1: Fuzzy match (1 mismatch)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 393.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 196.833px; text-align: left; transform-origin: 384.5px 196.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"791\" height=\"388\" style=\"vertical-align: baseline;width: 791px;height: 388px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  dupe = 'ATGCTACXTTAG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe duplicated gene (with one mismatch at position 8) appears in two places:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2: Exact match (X at beginning is not allowed)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  genome = \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'AAATCGATCGTTTCGATCG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  dupe = 'TCGATCG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function dupe = geneDuplication(genome)\r\n    dupe = '';\r\nend","test_suite":"%%\r\n% Test 1: Main example - fuzzy match with one mismatch\r\ngenome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA';\r\ndupe_correct = 'ATGCTACXTTAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 2: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AAATCGATCGTTTCGATCG';\r\ndupe_correct = 'TCGATCG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 3: Too short - duplicates less than 5 characters\r\ngenome = 'ACGTACGT';\r\ndupe_correct = '';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 4: Fuzzy match with X in interior\r\ngenome = 'GGGAAACGTGGGAAATGTCCC';\r\ndupe_correct = 'GGGAAAXGT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 5: Longer exact match available\r\ngenome = 'ATGATTACAGTGATTACAGCC';\r\ndupe_correct = 'TGATTACAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 6: Fuzzy match is longer than any exact match\r\ngenome = 'GGCCGATCGATGCCCCCGATCGAAGCC';\r\ndupe_correct = 'CCGATCGAXGCC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 7: Multiple exact matches, choose longest\r\ngenome = 'TAGTAGTAGTAG';\r\ndupe_correct = 'TAGTAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 8: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AACGTACGTTTGCGTACGTT';\r\ndupe_correct = 'CGTACGTT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 9: Exact match (fuzzy match would have X at end)\r\ngenome = 'TTACGTACGATTACGTACGT';\r\ndupe_correct = 'TTACGTACG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 10: Long genome with fuzzy match\r\ngenome = 'GGATTACAGATTTACAGATCCCGGATTACAGATCTACAGATCCC';\r\ndupe_correct = 'GGATTACAGATXTACAGATCCC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 11: No duplicates - all unique\r\ngenome = 'ACGTACGTA';\r\ndupe_correct = '';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 12: Exact match at boundaries\r\ngenome = 'GATTACGATTAC';\r\ndupe_correct = 'GATTAC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 13: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'TTTTTTAGCTAGCTAGCTAGCTAGCTTTTTT';\r\ndupe_correct = 'TAGCTAGCT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 14: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AAAGCTAGCTAGCTTTGCTAGCTAGC';\r\ndupe_correct = 'GCTAGCTAGC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 15: Exact match (fuzzy match would have X at end)\r\ngenome = 'ATCGATCGAATCGATCGT';\r\ndupe_correct = 'ATCGATCG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 16: Exact match (fuzzy match would have X at end)\r\ngenome = 'CCATAGATAGATACCATAGATAGATC';\r\ndupe_correct = 'CCATAGATAGAT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 17: Mismatch in middle position\r\ngenome = 'GGGAAACGTGGGAAATGT';\r\ndupe_correct = 'GGGAAAXGT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 18: Long exact match\r\ngenome = 'CTAGCTAGCTAGCTTCTAGCTAGCTAGC';\r\ndupe_correct = 'CTAGCTAGCTAGC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 19: Fuzzy match near end of genome\r\ngenome = 'GGATATGCTAGCTATATGCTTGCTGG';\r\ndupe_correct = 'ATATGCTXGCT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 20: Very long fuzzy match\r\ngenome = 'ACGATCGATCGATCGATCGTTAGACGATCGATCGATCGATCGCTA';\r\ndupe_correct = 'ACGATCGATCGATCGATCGXTA';\r\nassert(isequal(geneDuplication(genome), dupe_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":7,"edited_by":7,"edited_at":"2026-01-13T16:35:36.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2026-01-13T16:35:36.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2026-01-12T19:52:29.000Z","updated_at":"2026-03-05T04:18:18.000Z","published_at":"2026-01-12T19:58:14.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are investigating the genome of the bacterium\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCodex matlabius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. A virus that infects\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC. matlabius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRules:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe two occurrences must not overlap\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThey must be at least 5 nucleotides in length\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 'X' marker must appear in the interior of the string, never at the beginning or end\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the two occurrences match exactly, return the substring without any 'X'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf no valid duplicated substring exists, return an empty string\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1: Fuzzy match (1 mismatch)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"388\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"791\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  dupe = 'ATGCTACXTTAG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe duplicated gene (with one mismatch at position 8) appears in two places:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2: Exact match (X at beginning is not allowed)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  genome = \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'AAATCGATCGTTTCGATCG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  dupe = 'TCGATCG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"problem_search":{"errors":[],"problems":[{"id":61158,"title":"Gene Duplication with Sequencing Errors","description":"You are investigating the genome of the bacterium Codex matlabius. A virus that infects C. matlabius is known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\r\nUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\r\nGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\r\nRules:\r\nThe two occurrences must not overlap\r\nThey must be at least 5 nucleotides in length\r\nOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\r\nIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\r\nThe 'X' marker must appear in the interior of the string, never at the beginning or end\r\nIf the two occurrences match exactly, return the substring without any 'X'\r\nIf no valid duplicated substring exists, return an empty string\r\nExample 1: Fuzzy match (1 mismatch)\r\n\r\nInput\r\n  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\r\nOutput\r\n  dupe = 'ATGCTACXTTAG'\r\nThe duplicated gene (with one mismatch at position 8) appears in two places:\r\nExample 2: Exact match (X at beginning is not allowed)\r\nInput\r\n  genome = 'AAATCGATCGTTTCGATCG'\r\nOutput\r\n  dupe = 'TCGATCG'\r\nWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.","description_html":"\u003cdiv style = \"text-align: start; line-height: 20.44px; min-height: 0px; white-space: normal; color: rgb(33, 33, 33); font-family: Menlo, Monaco, Consolas, monospace; font-style: normal; font-size: 14px; font-weight: 400; text-decoration: none; white-space: normal; \"\u003e\u003cdiv style=\"block-size: 1148.06px; display: block; min-width: 0px; padding-block-start: 0px; padding-inline-start: 2px; padding-left: 2px; padding-top: 0px; perspective-origin: 408.5px 574.031px; transform-origin: 408.5px 574.031px; vertical-align: baseline; \"\u003e\u003cdiv style=\"block-size: 63px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 31.5px; text-align: left; transform-origin: 384.5px 31.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eYou are investigating the genome of the bacterium\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eCodex matlabius\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e. A virus that infects\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-style: italic; \"\u003eC. matlabius\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003e \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eis known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eRules:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cul style=\"block-size: 143.062px; font-family: Helvetica, Arial, sans-serif; list-style-type: square; margin-block-end: 20px; margin-block-start: 10px; margin-bottom: 20px; margin-top: 10px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 391.5px 71.5312px; transform-origin: 391.5px 71.5312px; margin-top: 10px; margin-bottom: 20px; \"\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe two occurrences must not overlap\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThey must be at least 5 nucleotides in length\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe 'X' marker must appear in the interior of the string, never at the beginning or end\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf the two occurrences match exactly, return the substring without any 'X'\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003cli style=\"block-size: 20.4375px; display: list-item; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-start: 56px; margin-left: 56px; margin-top: 0px; perspective-origin: 363.5px 10.2188px; text-align: left; transform-origin: 363.5px 10.2188px; white-space-collapse: preserve; margin-left: 56px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-inline-start: 0px; margin-left: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eIf no valid duplicated substring exists, return an empty string\u003c/span\u003e\u003c/span\u003e\u003c/li\u003e\u003c/ul\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 1: Fuzzy match (1 mismatch)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 393.667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 196.833px; text-align: left; transform-origin: 384.5px 196.833px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cimg class=\"imageNode\" width=\"791\" height=\"388\" style=\"vertical-align: baseline;width: 791px;height: 388px\" src=\"data:image/png;base64,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\" data-image-state=\"image-loaded\"\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  dupe = 'ATGCTACXTTAG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eThe duplicated gene (with one mismatch at position 8) appears in two places:\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.5px; text-align: left; transform-origin: 384.5px 10.5px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-weight: 700; \"\u003eExample 2: Exact match (X at beginning is not allowed)\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eInput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  genome = \u003c/span\u003e\u003c/span\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e'AAATCGATCGTTTCGATCG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003eOutput\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 21.6667px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 10.8333px; text-align: left; transform-origin: 384.5px 10.8333px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"font-family: Menlo, Monaco, Consolas, \u0026quot;Courier New\u0026quot;, monospace; \"\u003e  dupe = 'TCGATCG'\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003cdiv style=\"block-size: 42px; font-family: Helvetica, Arial, sans-serif; line-height: 21px; margin-block-end: 9px; margin-block-start: 2px; margin-bottom: 9px; margin-inline-end: 10px; margin-inline-start: 4px; margin-left: 4px; margin-right: 10px; margin-top: 2px; padding-inline-start: 0px; padding-left: 0px; perspective-origin: 384.5px 21px; text-align: left; transform-origin: 384.5px 21px; white-space-collapse: preserve; margin-left: 4px; margin-top: 2px; margin-bottom: 9px; \"\u003e\u003cspan style=\"block-size: auto; display: inline; margin-block-end: 0px; margin-block-start: 0px; margin-bottom: 0px; margin-inline-end: 0px; margin-inline-start: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; perspective-origin: 0px 0px; transform-origin: 0px 0px; unicode-bidi: normal; \"\u003e\u003cspan style=\"\"\u003eWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.\u003c/span\u003e\u003c/span\u003e\u003c/div\u003e\u003c/div\u003e\u003c/div\u003e","function_template":"function dupe = geneDuplication(genome)\r\n    dupe = '';\r\nend","test_suite":"%%\r\n% Test 1: Main example - fuzzy match with one mismatch\r\ngenome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA';\r\ndupe_correct = 'ATGCTACXTTAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 2: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AAATCGATCGTTTCGATCG';\r\ndupe_correct = 'TCGATCG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 3: Too short - duplicates less than 5 characters\r\ngenome = 'ACGTACGT';\r\ndupe_correct = '';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 4: Fuzzy match with X in interior\r\ngenome = 'GGGAAACGTGGGAAATGTCCC';\r\ndupe_correct = 'GGGAAAXGT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 5: Longer exact match available\r\ngenome = 'ATGATTACAGTGATTACAGCC';\r\ndupe_correct = 'TGATTACAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 6: Fuzzy match is longer than any exact match\r\ngenome = 'GGCCGATCGATGCCCCCGATCGAAGCC';\r\ndupe_correct = 'CCGATCGAXGCC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 7: Multiple exact matches, choose longest\r\ngenome = 'TAGTAGTAGTAG';\r\ndupe_correct = 'TAGTAG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 8: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AACGTACGTTTGCGTACGTT';\r\ndupe_correct = 'CGTACGTT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 9: Exact match (fuzzy match would have X at end)\r\ngenome = 'TTACGTACGATTACGTACGT';\r\ndupe_correct = 'TTACGTACG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 10: Long genome with fuzzy match\r\ngenome = 'GGATTACAGATTTACAGATCCCGGATTACAGATCTACAGATCCC';\r\ndupe_correct = 'GGATTACAGATXTACAGATCCC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 11: No duplicates - all unique\r\ngenome = 'ACGTACGTA';\r\ndupe_correct = '';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 12: Exact match at boundaries\r\ngenome = 'GATTACGATTAC';\r\ndupe_correct = 'GATTAC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 13: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'TTTTTTAGCTAGCTAGCTAGCTAGCTTTTTT';\r\ndupe_correct = 'TAGCTAGCT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 14: Exact match (fuzzy match would have X at beginning)\r\ngenome = 'AAAGCTAGCTAGCTTTGCTAGCTAGC';\r\ndupe_correct = 'GCTAGCTAGC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 15: Exact match (fuzzy match would have X at end)\r\ngenome = 'ATCGATCGAATCGATCGT';\r\ndupe_correct = 'ATCGATCG';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 16: Exact match (fuzzy match would have X at end)\r\ngenome = 'CCATAGATAGATACCATAGATAGATC';\r\ndupe_correct = 'CCATAGATAGAT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 17: Mismatch in middle position\r\ngenome = 'GGGAAACGTGGGAAATGT';\r\ndupe_correct = 'GGGAAAXGT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 18: Long exact match\r\ngenome = 'CTAGCTAGCTAGCTTCTAGCTAGCTAGC';\r\ndupe_correct = 'CTAGCTAGCTAGC';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 19: Fuzzy match near end of genome\r\ngenome = 'GGATATGCTAGCTATATGCTTGCTGG';\r\ndupe_correct = 'ATATGCTXGCT';\r\nassert(isequal(geneDuplication(genome), dupe_correct))\r\n\r\n%%\r\n% Test 20: Very long fuzzy match\r\ngenome = 'ACGATCGATCGATCGATCGTTAGACGATCGATCGATCGATCGCTA';\r\ndupe_correct = 'ACGATCGATCGATCGATCGXTA';\r\nassert(isequal(geneDuplication(genome), dupe_correct))","published":true,"deleted":false,"likes_count":0,"comments_count":3,"created_by":7,"edited_by":7,"edited_at":"2026-01-13T16:35:36.000Z","deleted_by":null,"deleted_at":null,"solvers_count":6,"test_suite_updated_at":"2026-01-13T16:35:36.000Z","rescore_all_solutions":false,"group_id":1,"created_at":"2026-01-12T19:52:29.000Z","updated_at":"2026-03-05T04:18:18.000Z","published_at":"2026-01-12T19:58:14.000Z","restored_at":null,"restored_by":null,"spam":false,"simulink":false,"admin_reviewed":false,"description_opc":"{\"parts\":[{\"partUri\":\"/matlab/document.xml\",\"contentType\":\"application/vnd.mathworks.matlab.code.document+xml\",\"content\":\"\u003c?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?\u003e\u003cw:document xmlns:w=\\\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\\\"\u003e\u003cw:body\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eYou are investigating the genome of the bacterium\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eCodex matlabius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e. A virus that infects\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:i/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eC. matlabius\u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003e \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:t\u003eis known to insert long, repeated sections of its own genes into the bacterial genome. Your job is to find duplicates in the genome that might signal these viral insertions.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eUnfortunately, your gene sequencer isn't perfect and sometimes makes reading mistakes. You need to consider both exact matches and very close matches with no more than 1 mismatch (disagreement between the two sequences).\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eGiven a single string of nucleotide characters taken from the genome, find the longest substring that appears in two non-overlapping locations. The two occurrences can either match exactly or differ by at most one character.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eRules:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe two occurrences must not overlap\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThey must be at least 5 nucleotides in length\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eOnly characters A (adenine), C (cytosine), G (guanine), or T (thymine) appear in the input\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the two occurrences differ by exactly one character, mark that position with 'X' in the output\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe 'X' marker must appear in the interior of the string, never at the beginning or end\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf the two occurrences match exactly, return the substring without any 'X'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"ListParagraph\\\"/\u003e\u003cw:numPr\u003e\u003cw:numId w:val=\\\"1\\\"/\u003e\u003c/w:numPr\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eIf no valid duplicated substring exists, return an empty string\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 1: Fuzzy match (1 mismatch)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:customXml w:element=\\\"image\\\"\u003e\u003cw:customXmlPr\u003e\u003cw:attr w:name=\\\"height\\\" w:val=\\\"388\\\"/\u003e\u003cw:attr w:name=\\\"width\\\" w:val=\\\"791\\\"/\u003e\u003cw:attr w:name=\\\"verticalAlign\\\" w:val=\\\"baseline\\\"/\u003e\u003cw:attr w:name=\\\"altText\\\" w:val=\\\"\\\"/\u003e\u003cw:attr w:name=\\\"relationshipId\\\" w:val=\\\"rId1\\\"/\u003e\u003c/w:customXmlPr\u003e\u003c/w:customXml\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  genome = 'AATGCTACCTTAGTACCACTGGATGCTACATTAGA'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  dupe = 'ATGCTACXTTAG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eThe duplicated gene (with one mismatch at position 8) appears in two places:\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:b/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eExample 2: Exact match (X at beginning is not allowed)\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eInput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  genome = \u003c/w:t\u003e\u003c/w:r\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e'AAATCGATCGTTTCGATCG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003eOutput\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:rPr\u003e\u003cw:rFonts w:cs=\\\"monospace\\\"/\u003e\u003c/w:rPr\u003e\u003cw:t\u003e  dupe = 'TCGATCG'\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003cw:p\u003e\u003cw:pPr\u003e\u003cw:pStyle w:val=\\\"text\\\"/\u003e\u003cw:jc w:val=\\\"left\\\"/\u003e\u003c/w:pPr\u003e\u003cw:r\u003e\u003cw:t\u003eWhile there's a potential 8-character fuzzy match, it would require 'X' at the beginning, which is not allowed. Returns the 7-character exact match instead.\u003c/w:t\u003e\u003c/w:r\u003e\u003c/w:p\u003e\u003c/w:body\u003e\u003c/w:document\u003e\",\"relationship\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/image\",\"target\":\"/media/image1.png\",\"relationshipId\":\"rId1\"}]},{\"partUri\":\"/media/image1.png\",\"contentType\":\"image/png\",\"content\":\"data:image/png;base64,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\",\"relationship\":null}],\"relationships\":[{\"relationshipType\":\"http://schemas.mathworks.com/matlab/code/2013/relationships/document\",\"target\":\"/matlab/document.xml\",\"relationshipId\":\"rId1\"}]}"}],"term":"tag:\"genetics\"","current_player_id":null,"fields":[{"name":"page","type":"integer","callback":null,"default":1,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"per_page","type":"integer","callback":null,"default":50,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"sort","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":null,"prepend":true},{"name":"body","type":"text","callback":null,"default":"*:*","directive":null,"facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":false},{"name":"group","type":"string","callback":null,"default":null,"directive":"group","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"difficulty_rating_bin","type":"string","callback":null,"default":null,"directive":"difficulty_rating_bin","facet":true,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"id","type":"integer","callback":null,"default":null,"directive":"id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"tag","type":"string","callback":null,"default":null,"directive":"tag","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"product","type":"string","callback":null,"default":null,"directive":"product","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_at","type":"timeframe","callback":{},"default":null,"directive":"created_at","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"profile_id","type":"integer","callback":null,"default":null,"directive":"author_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"created_by","type":"string","callback":null,"default":null,"directive":"author","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player_id","type":"integer","callback":null,"default":null,"directive":"solver_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"player","type":"string","callback":null,"default":null,"directive":"solver","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"solvers_count","type":"integer","callback":null,"default":null,"directive":"solvers_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"comments_count","type":"integer","callback":null,"default":null,"directive":"comments_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"likes_count","type":"integer","callback":null,"default":null,"directive":"likes_count","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leader_id","type":"integer","callback":null,"default":null,"directive":"leader_id","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true},{"name":"leading_solution","type":"integer","callback":null,"default":null,"directive":"leading_solution","facet":null,"facet_method":"and","operator":null,"param":"term","static":null,"prepend":true}],"filters":[{"name":"asset_type","type":"string","callback":null,"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":null,"static":"\"cody:problem\"","prepend":true},{"name":"profile_id","type":"integer","callback":{},"default":null,"directive":null,"facet":null,"facet_method":"and","operator":null,"param":"author_id","static":null,"prepend":true}],"query":{"params":{"per_page":50,"term":"tag:\"genetics\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"genetics\"","","\"","genetics","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f24a3740788\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f24a37406e8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f24a3aef780\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f24a3740aa8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f24a3740968\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f24a37408c8\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f24a3740828\u003e":"tag:\"genetics\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f24a3740828\u003e":"tag:\"genetics\""},"queried_facets":{}},"query_backend":{"connection":{"configuration":{"index_url":"http://index-op-v2/solr/","query_url":"http://search-op-v2/solr/","direct_access_index_urls":["http://index-op-v2/solr/"],"direct_access_query_urls":["http://search-op-v2/solr/"],"timeout":10,"vhost":"search","exchange":"search.topic","heartbeat":30,"pre_index_mode":false,"host":"rabbitmq-eks","port":5672,"username":"cody-search","password":"78X075ddcV44","virtual_host":"search","indexer":"amqp","http_logging":"true","core":"cody"},"query_connection":{"uri":"http://search-op-v2/solr/cody/","proxy":null,"connection":{"parallel_manager":null,"headers":{"User-Agent":"Faraday v1.0.1"},"params":{},"options":{"params_encoder":"Faraday::FlatParamsEncoder","proxy":null,"bind":null,"timeout":null,"open_timeout":null,"read_timeout":null,"write_timeout":null,"boundary":null,"oauth":null,"context":null,"on_data":null},"ssl":{"verify":true,"ca_file":null,"ca_path":null,"verify_mode":null,"cert_store":null,"client_cert":null,"client_key":null,"certificate":null,"private_key":null,"verify_depth":null,"version":null,"min_version":null,"max_version":null},"default_parallel_manager":null,"builder":{"adapter":{"name":"Faraday::Adapter::NetHttp","args":[],"block":null},"handlers":[{"name":"Faraday::Response::RaiseError","args":[],"block":null}],"app":{"app":{"ssl_cert_store":{"verify_callback":null,"error":null,"error_string":null,"chain":null,"time":null},"app":{},"connection_options":{},"config_block":null}}},"url_prefix":"http://search-op-v2/solr/cody/","manual_proxy":false,"proxy":null},"update_format":"RSolr::JSON::Generator","update_path":"update","options":{"url":"http://search-op-v2/solr/cody"}}},"query":{"params":{"per_page":50,"term":"tag:\"genetics\"","current_player":null,"sort":"map(difficulty_value,0,0,999) asc"},"parser":"MathWorks::Search::Solr::QueryParser","directives":{"term":{"directives":{"tag":[["tag:\"genetics\"","","\"","genetics","\""]]}}},"facets":{"#\u003cMathWorks::Search::Field:0x00007f24a3740788\u003e":null,"#\u003cMathWorks::Search::Field:0x00007f24a37406e8\u003e":null},"filters":{"#\u003cMathWorks::Search::Field:0x00007f24a3aef780\u003e":"\"cody:problem\""},"fields":{"#\u003cMathWorks::Search::Field:0x00007f24a3740aa8\u003e":1,"#\u003cMathWorks::Search::Field:0x00007f24a3740968\u003e":50,"#\u003cMathWorks::Search::Field:0x00007f24a37408c8\u003e":"map(difficulty_value,0,0,999) asc","#\u003cMathWorks::Search::Field:0x00007f24a3740828\u003e":"tag:\"genetics\""},"user_query":{"#\u003cMathWorks::Search::Field:0x00007f24a3740828\u003e":"tag:\"genetics\""},"queried_facets":{}},"options":{"fields":["id","difficulty_rating"]},"join":" "},"results":[{"id":61158,"difficulty_rating":"medium"}]}}