【題目】
給你乙個混合了數字和字母的字串 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 輸入 ...