LeetCode Entry

3517. Smallest Palindromic Rearrangement I

28.07.2026 medium 2026 kotlin rust

Smallest palindrome rearrangement

3517. Smallest Palindromic Rearrangement I medium substack youtube

https://dmitrysamoylenko.com/leetcode/

28.07.2026.webp

Join me on Telegram

https://t.me/leetcode_daily_unstoppable/1434

Problem TLDR

Smallest palindrome rearrangement

Intuition

Take first half and sort it.

Approach

  • tip: prepare yourself for the k-th rearrangement

Complexity

  • Time complexity: \(O(n)\)

  • Space complexity: \(O(n)\)

Code

    fun smallestPalindrome(s: String) = run {
        val h = s.take(s.length/2).map{it}.sorted().joinToString("")
        h + (if (s.length%2>0) s[s.length/2] else "") + h.reversed()
    }
    pub fn smallest_palindrome(s: String) -> String {
        let n = s.len(); let h = s[..n/2].chars().sorted();
        h.clone().chain(s[n/2..(n+1)/2].chars()).chain(h.rev()).collect()
    }

Comments