diff --git a/6kyu/replace-with-alphabet-position/description.md b/6kyu/replace-with-alphabet-position/description.md new file mode 100644 index 0000000..201b573 --- /dev/null +++ b/6kyu/replace-with-alphabet-position/description.md @@ -0,0 +1,13 @@ +Welcome. + +In this kata you are required to, given a string, replace every letter with its position in the alphabet. + +If anything in the text isn't a letter, ignore it and don't return it. + +"a" = 1, "b" = 2, etc. + +Example +``` +Input = "The sunset sets at twelve o' clock." +Output = "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11" +``` \ No newline at end of file diff --git a/6kyu/replace-with-alphabet-position/solution.ts b/6kyu/replace-with-alphabet-position/solution.ts new file mode 100644 index 0000000..01e64be --- /dev/null +++ b/6kyu/replace-with-alphabet-position/solution.ts @@ -0,0 +1,8 @@ +export function alphabetPosition(text: string): string { + const alphabet = 'abcdefghijklmnopqrstuvwxyz'; + const indexArray = [...text] + .map((char) => alphabet.indexOf(char.toLowerCase())) + .filter((index) => index !== -1) + .map((index) => index + 1); + return indexArray.join(' '); +} \ No newline at end of file diff --git a/6kyu/replace-with-alphabet-position/tests.ts b/6kyu/replace-with-alphabet-position/tests.ts new file mode 100644 index 0000000..f903e49 --- /dev/null +++ b/6kyu/replace-with-alphabet-position/tests.ts @@ -0,0 +1,10 @@ +import { assert } from "chai"; + +import { alphabetPosition } from "./solution"; + +describe("Tests", () => { + it("test", () => { + assert.equal(alphabetPosition("The sunset sets at twelve o' clock."), "20 8 5 19 21 14 19 5 20 19 5 20 19 1 20 20 23 5 12 22 5 15 3 12 15 3 11"); + assert.equal(alphabetPosition("The narwhal bacons at midnight."), "20 8 5 14 1 18 23 8 1 12 2 1 3 15 14 19 1 20 13 9 4 14 9 7 8 20"); + }); +}); \ No newline at end of file