LeetCode0924 增減字串匹配

2021-09-02 05:22:24 字數 1248 閱讀 5511

給定只含 "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]

例項:

輸出:"idid"

輸出:[0,4,1,3,2]

輸出:"iii"

輸出:[0,1,2,3]

輸出:"ddi"

輸出:[3,2,0,1]

1 <= s.length <= 1000

s只包含字元"i""d"

1、首先建立乙個比字串長度+1的陣列,陣列從0開始之後每個元素比之前的元素+1;

2、字串從0開始遍歷;

3、當遇見 『i』 時不做任何操作

4、當遇見『d』時,將字串從零開始取到當前位置(包括當前位置的字元)並倒序所取字串

5、遍歷所取的倒序字串,如果遇見『d』,假設當前位置的整數陣列與前一位調換,之後繼續遍歷所取字串直至遍歷完全

6、最後,輸出修改後的整數字串

class solution:

def distringmatch(self, s):

""":type s: str

:rtype: list[int]

"""a = [i for i in range(len(s)+1)]

# print(a)

for i in range(1,len(a)):

if s[i-1] == 'd':

# print(s[i-1::-1])

for j in s[i-1::-1]:

if j == 'i':

break

a[i],a[i-1] = a[i-1],a[i]

i-=1

# print(a)

# print(a)

return a

a = solution().distringmatch('dddi')

print(a)

請大家多多指點。

leetcode 增減字串匹配 C

給定只含 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 1 s.length 1...

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...

leetcode 井字遊戲

設計乙個演算法,判斷玩家是否贏了井字遊戲。輸入是乙個 n x n 的陣列棋盤,由字元 x 和 o 組成,其中字元 代表乙個空位。以下是井字遊戲的規則 玩家輪流將字元放入空位 中。第乙個玩家總是放字元 o 且第二個玩家總是放字元 x x 和 o 只允許放置在空位中,不允許對已放有字元的位置進行填充。當...