0647. Palindromic Substrings

https://leetcode.com/problems/palindromic-substrings

Description

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".

Constraints:

  • 1 <= s.length <= 1000

  • s consists of lowercase English letters.

ac1: central expansion

same as https://leetcode.com/problems/longest-palindromic-substring

class Solution {
    int count = 0;
    public int countSubstrings(String s) {
        // edge cases
        // if (s.length() == 0) return 0;

        for (int i = 0; i < s.length(); i++) {
            expand(s, i, i);
            expand(s, i, i+1);
        }

        return count;
    }

    private void expand(String s, int left, int right) {
        while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
            count++;  // find one palindromic substring
            left--;
            right++;
        }
    }
}

Last updated