一行中有n
張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。
給定表示初始狀態的字串 「s」 。如果第 i 張多公尺諾骨牌被推向左邊,則s[i] = 'l'
;如果第 i 張多公尺諾骨牌被推向右邊,則s[i] = 'r'
;如果第 i 張多公尺諾骨牌沒有被推動,則s[i] = '.'
。返回表示最終狀態的字串。
輸入:".l.r...lr..l.."
輸出:"ll.rr.llrrll.."
class
solution
: def pushdominoes
(self, dominoes: str)
-> str:
ans =
"" temp =
"l"+ dominoes +
"r" left =
0for i in range(1
,len
(temp)):
if temp[i] in (
"l",
"r")
:if temp[left]
=="l"
and temp[i]
=="l"
: ans +
="l"
*(i - left -1)
+ temp[i]
elif temp[left]
=="r"
and temp[i]
=="l"
: length = i - left -
1 half = length // 2
if length %2:
ans +
="r"
* half +
"."+
"l"* half
else
: ans +
="r"
* half +
"l"* half
ans +
= temp[i]
elif temp[left]
=="l"
and temp[i]
=="r"
: ans +
= temp[left +
1:i +1]
elif temp[left]
=="r"
and temp[i]
=="r"
: ans +
="r"
*(i - left -1)
+"r"
left = i
return ans[:-
1]
leetcode838 推多公尺諾
一行中有 n 張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。如果同時有多公尺諾骨牌落在一張垂直豎立的多公尺諾骨牌的...
LeetCode 838 推多公尺諾
一行中有 n 張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。如果同時有多公尺諾骨牌落在一張垂直豎立的多公尺諾骨牌的...
Leetcode 838 推多公尺諾 C
一行中有 n 張多公尺諾骨牌,我們將每張多公尺諾骨牌垂直豎立。在開始時,我們同時把一些多公尺諾骨牌向左或向右推。每過一秒,倒向左邊的多公尺諾骨牌會推動其左側相鄰的多公尺諾骨牌。同樣地,倒向右邊的多公尺諾骨牌也會推動豎立在其右側的相鄰多公尺諾骨牌。如果同時有多公尺諾骨牌落在一張垂直豎立的多公尺諾骨牌的...