java.lang.Object
g1901_2000.s1930_unique_length_3_palindromic_subsequences.Solution

public class Solution extends java.lang.Object
1930 - Unique Length-3 Palindromic Subsequences.

Medium

Given a string s, return the number of unique palindromes of length three that are a subsequence of s.

Note that even if there are multiple ways to obtain the same subsequence, it is still only counted once.

A palindrome is a string that reads the same forwards and backwards.

A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.

  • For example, "ace" is a subsequence of "abcde".

Example 1:

Input: s = “aabca”

Output: 3

Explanation: The 3 palindromic subsequences of length 3 are:

  • “aba” (subsequence of “aabca”)

  • “aaa” (subsequence of “aabca”)

  • “aca” (subsequence of “aabca”)

Example 2:

Input: s = “adc”

Output: 0

Explanation: There are no palindromic subsequences of length 3 in “adc”.

Example 3:

Input: s = “bbcbaba”

Output: 4

Explanation: The 4 palindromic subsequences of length 3 are:

  • “bbb” (subsequence of “bbcbaba”)

  • “bcb” (subsequence of “bbcbaba”)

  • “bab” (subsequence of “bbcbaba”)

  • “aba” (subsequence of “bbcbaba”)

Constraints:

  • 3 <= s.length <= 105
  • s consists of only lowercase English letters.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    countPalindromicSubsequence(java.lang.String s)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • Solution

      public Solution()
  • Method Details

    • countPalindromicSubsequence

      public int countPalindromicSubsequence(java.lang.String s)