From bd267bb7d85d6edf5df5542017f6c07582a56277 Mon Sep 17 00:00:00 2001 From: Taranjeet Singh Kalsi Date: Fri, 28 Oct 2022 00:17:16 +0530 Subject: [PATCH] Fixed error in Palindrome.java and gave semantic names to functions (#3643) * fixed error and changed functions names fixed error at line 57 and gave semantic names to functions with comments * renamed functions renamed functions to match with original functions' names in the file * Updated TestCases Updated TestCases and changed a function name * Removed main() and changed function name Removed main() and changed the function name from isPalindromeStringBuilder to isPalindrome * fixed typo Co-authored-by: Debasish Biswas --- .../com/thealgorithms/strings/Palindrome.java | 27 +++---------------- .../thealgorithms/strings/PalindromeTest.java | 23 ++++++++++------ 2 files changed, 19 insertions(+), 31 deletions(-) diff --git a/src/main/java/com/thealgorithms/strings/Palindrome.java b/src/main/java/com/thealgorithms/strings/Palindrome.java index 30a7e08d..0046e545 100644 --- a/src/main/java/com/thealgorithms/strings/Palindrome.java +++ b/src/main/java/com/thealgorithms/strings/Palindrome.java @@ -6,26 +6,7 @@ package com.thealgorithms.strings; class Palindrome { /** - * Driver Code - */ - public static void main(String[] args) { - String[] palindromes = { null, "", "aba", "123321" }; - for (String s : palindromes) { - assert isPalindrome(s) && - isPalindromeRecursion(s) && - isPalindrome1(s); - } - - String[] notPalindromes = { "abb", "abc", "abc123" }; - for (String s : notPalindromes) { - assert !isPalindrome(s) && - !isPalindromeRecursion(s) && - !isPalindrome1(s); - } - } - - /** - * Check if a string is palindrome string or not + * Check if a string is palindrome string or not using String Builder * * @param s a string to check * @return {@code true} if given string is palindrome, otherwise @@ -54,17 +35,17 @@ class Palindrome { return false; } - return isPalindrome(s.substring(1, s.length() - 1)); + return isPalindromeRecursion(s.substring(1, s.length() - 1)); } /** - * Check if a string is palindrome string or not another way + * Check if a string is palindrome string or not using two pointer technique * * @param s a string to check * @return {@code true} if given string is palindrome, otherwise * {@code false} */ - public static boolean isPalindrome1(String s) { + public static boolean isPalindromeTwoPointer(String s) { if (s == null || s.length() <= 1) { return true; } diff --git a/src/test/java/com/thealgorithms/strings/PalindromeTest.java b/src/test/java/com/thealgorithms/strings/PalindromeTest.java index c98ebc2a..0545cdb9 100644 --- a/src/test/java/com/thealgorithms/strings/PalindromeTest.java +++ b/src/test/java/com/thealgorithms/strings/PalindromeTest.java @@ -7,13 +7,20 @@ public class PalindromeTest { @Test public void palindrome() { - String input1 = "kayak"; - String input2 = "kayaks"; - Assertions.assertTrue(Palindrome.isPalindrome(input1)); - Assertions.assertFalse(Palindrome.isPalindrome(input2)); - Assertions.assertTrue(Palindrome.isPalindromeRecursion(input1)); - Assertions.assertFalse(Palindrome.isPalindromeRecursion(input2)); - Assertions.assertTrue(Palindrome.isPalindrome1(input1)); - Assertions.assertFalse(Palindrome.isPalindrome1(input2)); + + String[] palindromes = { null, "", "aba", "123321", "kayak" }; + for (String s : palindromes) { + Assertions.assertTrue(Palindrome.isPalindrome(s) && + Palindrome.isPalindromeRecursion(s) && + Palindrome.isPalindromeTwoPointer(s)); + } + + String[] notPalindromes = { "abb", "abc", "abc123", "kayaks" }; + for (String s : notPalindromes) { + Assertions.assertFalse(Palindrome.isPalindrome(s) || + Palindrome.isPalindromeRecursion(s) || + Palindrome.isPalindromeTwoPointer(s)); + } + } }