add reverse string exercise (#15)

This commit is contained in:
Marc Bernard
2021-11-26 09:34:41 -05:00
committed by GitHub
parent 2cd6a21348
commit 59b40b201b
6 changed files with 117 additions and 0 deletions

View File

@@ -36,6 +36,14 @@
"practices": [],
"prerequisites": [],
"difficulty": 1
},
{
"slug": "reverse-string",
"name": "Reverse String",
"uuid": "fad4b5a6-6a15-4687-886c-34787df7b45e",
"practices": [],
"prerequisites": [],
"difficulty": 1
}
]
},

View File

@@ -0,0 +1,7 @@
# Instructions
Reverse a string
For example:
input: "cool"
output: "looc"

View File

@@ -0,0 +1,10 @@
{
"blurb": "Reverse a string",
"authors": ["mbtools"],
"contributors": [],
"files": {
"solution": ["zcl_reverse_string.clas.abap"],
"test": ["zcl_reverse_string.clas.testclasses.abap"],
"example": [".meta/zcl_reverse_string.clas.abap"]
}
}

View File

@@ -0,0 +1,17 @@
CLASS zcl_reverse_string DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS reverse_string
IMPORTING
input TYPE string
RETURNING
VALUE(result) TYPE string.
ENDCLASS.
CLASS zcl_reverse_string IMPLEMENTATION.
METHOD reverse_string.
" Please complete the implementation of the reverse_string method
result = input.
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,16 @@
CLASS zcl_reverse_string DEFINITION PUBLIC.
PUBLIC SECTION.
METHODS reverse_string
IMPORTING
input TYPE string
RETURNING
VALUE(result) TYPE string.
ENDCLASS.
CLASS zcl_reverse_string IMPLEMENTATION.
METHOD reverse_string.
result = reverse( input ).
ENDMETHOD.
ENDCLASS.

View File

@@ -0,0 +1,59 @@
CLASS ltcl_reverse_string DEFINITION FOR TESTING RISK LEVEL HARMLESS DURATION SHORT FINAL.
PRIVATE SECTION.
DATA cut TYPE REF TO zcl_reverse_string.
METHODS:
setup,
test_empty_string FOR TESTING,
test_word FOR TESTING,
test_capitalized_word FOR TESTING,
test_sentence_with_punctuation FOR TESTING,
test_palindrome FOR TESTING,
test_even_sized_word FOR TESTING.
ENDCLASS.
CLASS ltcl_reverse_string IMPLEMENTATION.
METHOD setup.
cut = NEW zcl_reverse_string( ).
ENDMETHOD.
METHOD test_empty_string.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( '' )
exp = '' ).
ENDMETHOD.
METHOD test_word.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( 'robot' )
exp = 'tobor' ).
ENDMETHOD.
METHOD test_capitalized_word.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( 'Ramen' )
exp = 'nemaR' ).
ENDMETHOD.
METHOD test_sentence_with_punctuation.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( `I'm hungry!` )
exp = `!yrgnuh m'I` ).
ENDMETHOD.
METHOD test_palindrome.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( 'racecar' )
exp = 'racecar' ).
ENDMETHOD.
METHOD test_even_sized_word.
cl_abap_unit_assert=>assert_equals(
act = cut->reverse_string( 'drawer' )
exp = 'reward' ).
ENDMETHOD.
ENDCLASS.