回覆列表
  • 1 # Milo咪嚕

    class Solution(object):

    def smallestSubsequence(self, text):

    """

    :type text: str

    :rtype: str

    """

    stack = []

    last_o = {}

    considered = {}

    for i in range(len(text)-1,-1,-1):

    if text[i] not in last_o:

    last_o[text[i]] = i

    considered[text[i]] = False

    print(last_o)

    i = 0

    while i < len(text):

    print(stack,i,text[i])

    if len(stack) == 0:

    stack.append(text[i])

    considered[text[i]] = True

    i+=1

    elif stack[-1]>text[i] and considered[text[i]] == False:

    if last_o[stack[-1]]>i:

    considered[stack[-1]]=False

    stack.pop()

    else:

    considered[text[i]] = True

    stack.append(text[i])

    i+=1

    elif stack[-1]<text[i] and considered[text[i]] == False:

    stack.append(text[i])

    considered[text[i]] = True

    i+=1

    else:

    i+=1

    return "".join(i for i in stack)

  • 中秋節和大豐收的關聯?
  • 如果可以用自己的壽命去跟富人換錢,多少錢一年你願意換?