Skip to content

Commit

Permalink
Add reverse-string exercise
Browse files Browse the repository at this point in the history
  • Loading branch information
BNAndras committed Jan 6, 2024
1 parent 84c5710 commit 252d29d
Show file tree
Hide file tree
Showing 7 changed files with 97 additions and 0 deletions.
8 changes: 8 additions & 0 deletions config.json
Original file line number Diff line number Diff line change
Expand Up @@ -191,6 +191,14 @@
"math"
]
},
{
"slug": "reverse-string",
"name": "Reverse String",
"uuid": "1b4c8b0f-a7cc-4db1-a0ad-485dc2b320d7",
"practices": [],
"prerequisites": [],
"difficulty": 2
},
{
"slug": "square-root",
"name": "Square Root",
Expand Down
7 changes: 7 additions & 0 deletions exercises/practice/reverse-string/.docs/instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
# Instructions

Reverse a string

For example:
input: "cool"
output: "looc"
19 changes: 19 additions & 0 deletions exercises/practice/reverse-string/.meta/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
{
"authors": [
"BNAndras"
],
"files": {
"solution": [
"reverse-string.coffee"
],
"test": [
"reverse-string.spec.coffee"
],
"example": [
".meta/example.coffee"
]
},
"blurb": "Reverse a string.",
"source": "Introductory challenge to reverse an input string",
"source_url": "https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb"
}
5 changes: 5 additions & 0 deletions exercises/practice/reverse-string/.meta/example.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class ReverseString
@reverse: (str) ->
str.split("").reverse().join ""

module.exports = ReverseString
28 changes: 28 additions & 0 deletions exercises/practice/reverse-string/.meta/tests.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This is an auto-generated file.
#
# Regenerating this file via `configlet sync` will:
# - Recreate every `description` key/value pair
# - Recreate every `reimplements` key/value pair, where they exist in problem-specifications
# - Remove any `include = true` key/value pair (an omitted `include` key implies inclusion)
# - Preserve any other key/value pair
#
# As user-added comments (using the # character) will be removed when this file
# is regenerated, comments can be added via a `comment` key.

[c3b7d806-dced-49ee-8543-933fd1719b1c]
description = "an empty string"

[01ebf55b-bebb-414e-9dec-06f7bb0bee3c]
description = "a word"

[0f7c07e4-efd1-4aaa-a07a-90b49ce0b746]
description = "a capitalized word"

[71854b9c-f200-4469-9f5c-1e8e5eff5614]
description = "a sentence with punctuation"

[1f8ed2f3-56f3-459b-8f3e-6d8d654a1f6c]
description = "a palindrome"

[b9e7dec1-c6df-40bd-9fa3-cd7ded010c4c]
description = "an even-sized word"
4 changes: 4 additions & 0 deletions exercises/practice/reverse-string/reverse-string.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
class ReverseString
@reverse: (str) ->

module.exports = ReverseString
26 changes: 26 additions & 0 deletions exercises/practice/reverse-string/reverse-string.spec.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ReverseString = require './reverse-string'

describe 'ReverseString', ->
it 'An empty string', ->
reversed = ReverseString.reverse("")
expect(reversed).toEqual("")

xit 'A word', ->
reversed = ReverseString.reverse("robot")
expect(reversed).toEqual("tobor")

xit 'A capitalized word', ->
reversed = ReverseString.reverse("Ramen")
expect(reversed).toEqual("nemaR")

xit 'A sentence with punctuation', ->
reversed = ReverseString.reverse("I'm hungry!")
expect(reversed).toEqual("!yrgnuh m'I")

xit 'A palindrome', ->
reversed = ReverseString.reverse("racecar")
expect(reversed).toEqual("racecar")

xit 'An even-sized word', ->
reversed = ReverseString.reverse("drawer")
expect(reversed).toEqual("reward")

0 comments on commit 252d29d

Please sign in to comment.