Blogs Hub

Remove Palindromic Subsequences Question with Solution. - MiniTV

Remove Palindromic Subsequences Question with Solution. - मिनी टीवी

Given a string s consisting only of letters 'a' and 'b'. In a single step, you can remove one palindromic subsequence from s.

Return the minimum number of steps to make the given string empty.

A string is a subsequence of a given string if it is generated by deleting some characters of a given string without changing its order.

A string is called palindrome if it is one that reads the same backward as well as forward.

 

Example 1:

Input: s = "ababa"

Output: 1

Explanation: String is already a palindrome

 

Example 2:

Input: s = "abb"

Output: 2

Explanation: "abb" -> "bb" -> "". 

Remove palindromic subsequence "a" then "bb".

 

Example 3:

Input: s = "baabb"

Output: 2

Explanation: "baabb" -> "b" -> "". 

Remove palindromic subsequence "baab" then "b".

 

Example 4:

Input: s = ""

Output: 0

 

Constraints:

0 <= s.length <= 1000

s only consists of letters 'a' and 'b'

 

Solution:

using System;
using System.Collections.Generic;
using System.Text;

namespace LeetCode.AskGif.Easy.String
{
    class RemovePalindromeSubSol
    {
        public void execute()
        {
            var res = RemovePalindromeSub("ababa");
        }
        public int RemovePalindromeSub(string s)
        {
            if (s == null || s == "")
                return 0;

            for (int i = 0,j = s.Length - 1; i <= j; i++, j--)
            {
                if (s[i] != s[j])
                    return 2;
            }
            return 1;
        }
    }
}

 

Time Complexity: O(n) - to check if the given string is palindrome or not in a single pass.

Space Complexity: O(1) - no extra space used.