diff --git a/kata/8-kyu/index.md b/kata/8-kyu/index.md index 70e09e59..52bf31ce 100644 --- a/kata/8-kyu/index.md +++ b/kata/8-kyu/index.md @@ -125,6 +125,7 @@ - [Invert values](invert-values "5899dc03bc95b1bf1b0000ad") - [Is he gonna survive?](is-he-gonna-survive "59ca8246d751df55cc00014c") - [Is it a number?](is-it-a-number "57126304cdbf63c6770012bd") +- [Is it a palindrome?](is-it-a-palindrome "57a1fd2ce298a731b20006a4") - [Is it even?](is-it-even "555a67db74814aa4ee0001b5") - [Is n divisible by x and y?](is-n-divisible-by-x-and-y "5545f109004975ea66000086") - [Is the string uppercase?](is-the-string-uppercase "56cd44e1aa4ac7879200010b") diff --git a/kata/8-kyu/is-it-a-palindrome/README.md b/kata/8-kyu/is-it-a-palindrome/README.md new file mode 100644 index 00000000..a27ae22f --- /dev/null +++ b/kata/8-kyu/is-it-a-palindrome/README.md @@ -0,0 +1,5 @@ +# [Is it a palindrome?](https://www.codewars.com/kata/is-it-a-palindrome "https://www.codewars.com/kata/57a1fd2ce298a731b20006a4") + +Write a function that checks if a given string (case-insensitive) is a [palindrome](https://en.wikipedia.org/wiki/Palindrome). + +A palindrome is a word, number, phrase, or other sequence of symbols that reads the same backwards as forwards, such as `madam` or `racecar`. \ No newline at end of file diff --git a/kata/8-kyu/is-it-a-palindrome/main/Palindrome.java b/kata/8-kyu/is-it-a-palindrome/main/Palindrome.java new file mode 100644 index 00000000..ff5c9a13 --- /dev/null +++ b/kata/8-kyu/is-it-a-palindrome/main/Palindrome.java @@ -0,0 +1,5 @@ +interface Palindrome { + static boolean isPalindrome(String x) { + return new StringBuilder(x).reverse().toString().equalsIgnoreCase(x); + } +} \ No newline at end of file diff --git a/kata/8-kyu/is-it-a-palindrome/test/SampleTests.java b/kata/8-kyu/is-it-a-palindrome/test/SampleTests.java new file mode 100644 index 00000000..019e1ddf --- /dev/null +++ b/kata/8-kyu/is-it-a-palindrome/test/SampleTests.java @@ -0,0 +1,19 @@ +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; + +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +class SampleTests { + @ParameterizedTest + @ValueSource(strings = {"a", "aba", "Abba", "Bob", "Madam", "AbBa", ""}) + void sample(String str) { + assertTrue(Palindrome.isPalindrome(str)); + } + + @ParameterizedTest + @ValueSource(strings = {"hello", "123521"}) + void negative(String str) { + assertFalse(Palindrome.isPalindrome(str)); + } +} \ No newline at end of file