Skip to main content
Back to problems
#1332
Easy Algorithms

Remove palindromic subsequences

Two Pointers String
77.0% acceptance
Feb 25, 2026
1743
1795
You are 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. Note that a subsequence does not necessarily need to be contiguous. A string is called palindrome if is one that reads the same backward as well as forward.

Solution

Rust
Time O(n)
Space O(1)
LeetCode
solution.rs
impl Solution {
  pub fn remove_palindrome_sub(s: String) -> i32 {
    if s.is_empty() { return 0; }
    let b = s.as_bytes();
    let n = b.len();
    // Check if palindrome
    let is_pal = (0..n / 2).all(|i| b[i] == b[n - 1 - i]);
    if is_pal { 1 } else { 2 }
  }
}