942 增減字串匹配

2022-01-26 14:17:20 字數 798 閱讀 3616

是有點難懂了,給出乙個字串s,s全部由『d』和『i』組成,然後現在需要解出乙個陣列,而這個陣列需要和s相匹配。假設s的長度為n,那麼這個陣列的長度是n+1,並且值是集合的任意排列。給出乙個例子,假設有字串s1 = "didid",那麼s1的長度為5,那麼答案就必須是集合的乙個排序,可能是,也可能是等等。

而這個排序必須是與字串s相匹配的。這裡上題目的example:

「idid」

[0,4,1,3,2]

s="idid"

a=[0,1,2,3,4]

1.迭代s

2.碰到「i」就找a裡面的最小值,然後把這個最小值放到ret陣列裡面並移出a。

3.碰到「d」就找a裡面的最大值,然後把這個最大值放到ret陣列裡面並移出a。

4.最後因為a比s長度大1,所以迭代完後a裡面還會剩乙個元素,把這個元素放進ret

5.ret就是最後的結果陣列

ret=[0,4,1,3,2]

class

solution:

defdistringmatch(self, s):

"""因為是遞增的a,所以列表頭永遠指向最小,列表尾永遠指向最大

通過出隊和出棧的方法實現

"""a=list(range(len(s)+1))

ret=

for x in

range(len(s)):

if s[x]=="i"

:

else

:

#print(ret)

return ret

942 增減字串匹配

給定只含 i 增大 或 d 減小 的字串 s 令 n s.length。返回 0,1,n 的任意排列 a 使得對於所有 i 0,n 1,都有 如果 s i i 那麼 a i a i 1 如果 s i d 那麼 a i a i 1 示例 1 輸出 idid 輸出 0,4,1,3,2 示例 2 輸出 i...

942 增減字串匹配

給定只含 i 增大 或 d 減小 的字串s,令n s.length。返回 0,1,n 的任意排列a使得對於所有i 0,n 1,都有 示例 1 輸入 idid 輸出 0,4,1,3,2 示例 2 輸入 iii 輸出 0,1,2,3 示例 3 輸入 ddi 輸出 3,2,0,1 對符合條件的pick中選...

942 leetcode 增減字串匹配

給定只含 i 增大 或 d 減小 的字串 s 令 n s.length。返回 0,1,n 的任意排列 a 使得對於所有 i 0,n 1,都有 如果 s i i 那麼 a i a i 1 如果 s i d 那麼 a i a i 1 示例 1 輸出 idid 輸出 0,4,1,3,2 示例 2 輸出 i...