Salesforce Sr. DevOps OA

Question1: https://www.geeksforgeeks.org/next-greater-element/

Question2: String Replace Checker
Given a string and pattern, replace the repeated pattern with X.

Example 1:
Input: string = aaaa, pattern = aa
Output: X

Example 2:
Input: string = aaaaa, pattern = aa
Output: Xa

Example 3:
Input: string = aaXcvzaaabb, pattern = a
Output: XcvzXbb

Example 4:
Input: string = aXacvc, pattern = aa
Output: XcvzXbb

我的解法

def replace(str, pattern):

    n = len(str)
    p = len(pattern)
    
    i = 0
    j = p

    replaceSet = []

    while i<=n and j<=n:
        if str[i:j] == pattern:
            if replaceSet and replaceSet[-1] == 'X':
                i+= p
                j+= p
                continue
            else:
                replaceSet.append('X')
            i+= p
            j+= p
        else:
            replaceSet.append(str[i])
            i+= 1
            j+= 1

    replaceSet.append(str[i:])
    return ''.join(replaceSet)
1 Like