字串 簡單 1417 重新格式化字串

2021-10-19 15:08:13 字數 1516 閱讀 1242

【題目】

給你乙個混合了數字和字母的字串 s,其中的字母均為小寫英文本母。

請你將該字串重新格式化,使得任意兩個相鄰字元的型別都不同。也就是說,字母後面應該跟著數字,而數字後面應該跟著字母。

請你返回 重新格式化後 的字串;如果無法按要求重新格式化,則返回乙個 空字串 。

【示例 1】

輸入:s = 「a0b1c2」

輸出:「0a1b2c」

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

【示例 2】

輸入:s = 「leetcode」

輸出:""

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

【示例 3】

輸入:s = 「1229857369」

輸出:""

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

【示例 4】

輸入:s = 「covid2019」

輸出:「c2o0v1i9d」

【示例 5】

輸入:s = 「ab123」

輸出:「1a2b3」

【提示】

1 <= s.length <= 500

s 僅由小寫英文本母和/或數字組成。

【**】

【python】

執行用時:

56 ms, 在所有 python3 提交中擊敗了43.22%的使用者

記憶體消耗:

14.9 mb, 在所有 python3 提交中擊敗了16.53%的使用者

class

solution

:def

reformat

(self, s:

str)

->

str:

zimu=

"" shuzi=

""for x in s:

if x in

"0123456789"

: shuzi+=x

else

: zimu+=x

len_zimu=

len(zimu)

len_shuzi=

len(shuzi)

minlen=

min(len_shuzi,len_zimu)

rs=""if

abs(len_zimu-len_shuzi)

>1:

return rs

for x,y in

zip(zimu,shuzi)

: rs+=x+y

if len_shuzi!=len_zimu:

if minlenrs=shuzi[-1

]+rs

else

: rs+=zimu[-1

]return rs

leetcode 1417 重新格式化字串

1417.重新格式化字串 難度簡單4收藏分享切換為英文關注反饋 給你乙個混合了數字和字母的字串s,其中的字母均為小寫英文本母。請你將該字串重新格式化,使得任意兩個相鄰字元的型別都不同。也就是說,字母後面應該跟著數字,而數字後面應該跟著字母。請你返回重新格式化後的字串 如果無法按要求重新格式化,則返回...

LeetCode 1417 重新格式化字串

給你乙個混合了數字和字母的字串 s,其中的字母均為小寫英文本母。請你將該字串重新格式化,使得任意兩個相鄰字元的型別都不同。也就是說,字母後面應該跟著數字,而數字後面應該跟著字母。請你返回 重新格式化後 的字串 如果無法按要求重新格式化,則返回乙個 空字串 示例 1 輸入 s a0b1c2 輸出 0a...

leetcode演算法 1417 重新格式化字串

所有題目源 git位址 題目給你乙個混合了數字和字母的字串 s,其中的字母均為小寫英文本母。請你將該字串重新格式化,使得任意兩個相鄰字元的型別都不同。也就是說,字母後面應該跟著數字,而數字後面應該跟著字母。請你返回 重新格式化後 的字串 如果無法按要求重新格式化,則返回乙個 空字串 示例 1 輸入 ...