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
![Palindromic Substrings LeetCode Solution](https://i0.wp.com/totheinnovation.com/wp-content/uploads/2024/02/LeetCode-Problem-Solution.png?resize=200%2C200&ssl=1)
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”.
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;
}
};
Code language: PHP (php)
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;
}
}
Code language: JavaScript (javascript)
Palindromic Substrings 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;
};
Code language: JavaScript (javascript)
Palindromic Substrings 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
Code language: HTML, XML (xml)