Last updated on October 5th, 2024 at 04:23 pm

Here, We see ** Palindromic Substrings LeetCode Solution**. This Leetcode problem is done in many programming languages like C++, Java, JavaScript, Python, etc. with different approaches.

*List of all LeetCode Solution*

*List of all LeetCode Solution*

## Topics

Dynamic Programming, String

## Companies

## Level of Question

Medium

**Palindromic Substrings LeetCode Solution**

## Table of Contents

**Problem Statement**

Given a string `s`

, return *the number of palindromic substrings in it*. A string is a

**palindrome**when it reads the same backward as forward.

A **substring** is a contiguous sequence of characters within the string.

**Example 1:****Input:** s = “ABC” **Output:** 3 **Explanation:** Three palindromic strings: “a”, “b”, “c”.

**Example 2:****Input:** s = “aaa” **Output:** 6 **Explanation:** Six palindromic strings: “a”, “a”, “a”, “aa”, “aa”, “aaa”.

**1. Palindromic Substrings Leetcode Solution C++**

class Solution { public: int countSubstrings(string s) { int n = s.length(), ans = 0; for (int i = 0; i < n; ++i) { int even = palindromeCount(s, i, i + 1); int odd = palindromeCount(s, i, i); ans += even + odd; } return ans; } int palindromeCount(const string& s, int left, int right) { int count = 0; while (left >= 0 && right < s.length() && s[left] == s[right]) { --left; ++right; ++count; } return count; } };

**2. Palindromic Substrings Leetcode Solution Java**

class Solution { public int countSubstrings(String s) { int n = s.length(); int ans = 0; for(int i=0;i<n;i++) { int even = palindromeCount(s, i, i+1); int odd = palindromeCount(s, i-1, i+1); ans += even + odd + 1; } return ans; } public int palindromeCount(String s, int left, int right) { int count = 0; while(left >= 0 && right < s.length() && s.charAt(left--) == s.charAt(right++)) { count++; } return count; } }

**3. Palindromic Substrings Leetcode Solution JavaScript**

var countSubstrings = function(s) { const n = s.length; const palindrome = Array.from(Array(n), () => Array(n).fill(false)); let ans = 0; for (let i = 0; i < n; i++) { palindrome[i][i] = true; ans++; } for (let i = 0; i < n - 1; i++) { if (s[i] === s[i + 1]) { palindrome[i][i + 1] = true; ans++; } } for (let len = 3; len <= n; len++) { for (let i = 0; i < n - len + 1; i++) { if (s[i] === s[i + len - 1] && palindrome[i + 1][i + len - 2]) { palindrome[i][i + len - 1] = true; ans++; } } } return ans; };

**4. Palindromic Substrings Leetcode Solution Python**

class Solution(object): def countSubstrings(self, s): n, ans = len(s), 0 def palindromeCount(left, right): count = 0 while left >= 0 and right < n and s[left] == s[right]: left -= 1 right += 1 count += 1 return count for i in range(n): even = palindromeCount(i, i + 1) odd = palindromeCount(i, i) ans += even + odd return ans