Skip to content
the poor coder

Leetcode - Custom Sort String Solution

Poor Man
Published
Updated
Reading time
1 min read

S and T are strings composed of lowercase letters. In S, no letter occurs more than once.

S was sorted in some custom order previously. We want to permute the characters of T so that they match the order that S was sorted. More specifically, if x occurs before y in S, then x should occur before y in the returned string.

Return any permutation of T (as a string) that satisfies this property.

Example :

Python
Input: 
S = "cba"
T = "abcd"
Output: "cbad"
Explanation: 
"a", "b", "c" appear in S, so the order of "a", "b", "c" should be "c", "b", and "a". 
Since "d" does not appear in S, it can be at any position in T. "dcba", "cdba", "cbda" are also valid outputs.

Note:

  • S has length at most 26, and no character is repeated in S.
  • T has length at most 200.
  • S and T consist of lowercase letters only.

Solution in Python #

Python
from collections import Counter
class Solution:
    def customSortString(self, S: str, T: str) -> str:
        S_COUNT = Counter(S)
        T_COUNT = Counter(T)
        PREFIX = ""
        SUFFIX = ""
        for i in S:
            if i in T:
                PREFIX+= i*T_COUNT[i]
                del T_COUNT[i]
        for i in T_COUNT:
            SUFFIX+= i*T_COUNT[i]
        return PREFIX+SUFFIX

Keep going

2021

Leetcode - Camelcase Matching Solution

A query word matches a given pattern if we can insert lowercase letters to the pattern word so that it equals the query. (We may insert each character at any position, and may insert 0 characters.) Given a list of…

ESC