給定只含 "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 只允許放置在空位中,不允許對已放有字元的位置進行填充。當...