Python中的DI字符串匹配
假设我们有一个仅包含“I”(表示增加)或“D”(表示减少)的字符串S,令N=S的大小。我们必须返回[0,1,...,N]使得对于范围0,...,N-1中的所有i-
如果S[i]为“I”,则A[i]<A[i+1]
否则,当S[i]为“D”时,则A[i]>A[i+1]
因此,如果输入类似于“IDID”,则输出将为[0,4,1,3,2]
为了解决这个问题,我们将遵循以下步骤-
A:=从0到N的列表,其中N是S的大小。
res=空白列表
对于S中的每个元素j
如果j是I,则从A中删除最后一个元素并插入res
否则,删除A的第一个元素并插入res
返回资源
让我们看下面的实现以更好地理解-
示例
class Solution: def diStringMatch(self, S): A=[i for i in range(len(S)+1)] return [A.pop((j=='I')-1) for j in S]+A ob = Solution()print(ob.diStringMatch("IDID"))
输入值
"IDID"
输出结果
[0, 4, 1, 3, 2]