LeetCode刷題之1417 重新格式化字串

2021-10-07 02:52:54 字數 1719 閱讀 5398

我不知道將去向何方,但我已在路上!

示例 1 :

輸入:s = "a0b1c2"

輸出:"0a1b2c"

解釋:"0a1b2c" 中任意兩個相鄰字元的型別都不同。 "a0b1c2", "0a1b2c", "0c2a1b" 也是滿足題目要求的答案。

示例 2 :

輸入:s = "leetcode"

輸出:""

解釋:"leetcode" 中只有字母,所以無法滿足重新格式化的條件。

示例 3 :

輸入:s = "1229857369"

輸出:""

解釋:"1229857369" 中只有數字,所以無法滿足重新格式化的條件。

示例 4 :

輸入:s = "covid2019"

輸出:"c2o0v1i9d"

示例 5 :

輸入:s = "ab123"

輸出:"1a2b3"

**:

class

solution

:def

reformat

(self, s:

str)

->

str:

letter, nums, result =

,,''for i in

range

(len

(s)):if

'0'<= s[i]

<=

'9': nums.insert(

0, s[i])if

'a'<= s[i]

<=

'z': letter.insert(

0, s[i])if

abs(

len(letter)

-len

(nums)

)>=2:

return

""if

len(letter)

==len

(nums)

:for i in

range

(len

(nums)):

result = result + letter[i]

+ nums[i]

iflen

(letter)

>

len(nums)

:for i in

range

(len

(nums)):

result = result + letter[i]

+ nums[i]

result += letter[-1

]iflen(letter)

<

len(nums)

:for i in

range

(len

(letter)):

result = result + nums[i]

+ letter[i]

result += nums[-1

]return result

# 執行用時 :64 ms, 在所有 python3 提交中擊敗了32.01%的使用者

# 記憶體消耗 :13.8 mb, 在所有 python3 提交中擊敗了100.00%的使用者

Leetcode刷題之括號

給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示例 5 輸入 輸...

leetcode刷題之堆

今天終於開啟的第二個專題的刷題之旅堆,不過第乙個專題棧還有乙個小問題沒解決就是利用遞減棧去解決接雨水的問題,雖然那道題我用動態規劃的問題解決出來了,我記得看到過一道面試題,問棧和堆有什麼區別。通過搜尋網上的資料總結如下。棧 stack 由系統分配記憶體,速度較快,但是自己無法掌握。堆 一般用兩種方法...

leetcode刷題之樹

樹的三種遍歷方式 的 非遞迴版本 中序遍歷 下面的解法就是相當於 第一趟先把元素按照中序的順序進棧 第二趟 是相當於把 null標記過的位置給拿出來 class solution else return res 先序遍歷 class solution else return res 公共父節點 pu...