#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)
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 }
}
}