diff --git a/src/main/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstring.java b/src/main/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstring.java index c6ae55919b82..8a4ab2f526a9 100644 --- a/src/main/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstring.java +++ b/src/main/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstring.java @@ -1,25 +1,18 @@ package com.thealgorithms.dynamicprogramming; -/* - * Algorithm explanation https://leetcode.com/problems/longest-palindromic-substring/ +/** + * Class for finding the longest palindromic substring within a given string. + *
+ * A palindromic substring is a sequence of characters that reads the same backward as forward.
+ * This class uses a dynamic programming approach to efficiently find the longest palindromic substring.
+ *
*/
public final class LongestPalindromicSubstring {
private LongestPalindromicSubstring() {
}
- public static void main(String[] args) {
- String a = "babad";
- String b = "cbbd";
-
- String aLPS = lps(a);
- String bLPS = lps(b);
-
- System.out.println(a + " => " + aLPS);
- System.out.println(b + " => " + bLPS);
- }
-
- private static String lps(String input) {
- if (input == null || input.length() == 0) {
+ public static String lps(String input) {
+ if (input == null || input.isEmpty()) {
return input;
}
boolean[][] arr = new boolean[input.length()][input.length()];
diff --git a/src/test/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstringTest.java b/src/test/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstringTest.java
new file mode 100644
index 000000000000..278de7e10e0a
--- /dev/null
+++ b/src/test/java/com/thealgorithms/dynamicprogramming/LongestPalindromicSubstringTest.java
@@ -0,0 +1,22 @@
+package com.thealgorithms.dynamicprogramming;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+import java.util.stream.Stream;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+public class LongestPalindromicSubstringTest {
+
+ private static Stream