767 重構字串

2021-10-24 23:11:58 字數 706 閱讀 8580

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。

若可行,輸出任意可行的結果。若不可行,返回空字串。

示例 1:

輸入: s = "aab"

輸出: "aba"

示例 2:

輸入: s = "aaab"

輸出: ""

注意:s 只包含小寫字母並且長度在[1, 500]區間內。

1.排序然後把大的先放好(空乙個位置一放),然後小的插空進大的空位置

class solution:

def reorganizestring(self, s: str) -> str:

s=for c,x in sorted( (s.count(s),s) for s in set(s)):

if c>len(s)/2+1:return ""

s+=[x]*c

mid=len(s)//2

if s[mid-1]==s[-1]:

return ""

a,b=s[:mid],s[mid:]

for i in range(len(b)):

s[2*i]=b[i]

for i in range(len(a)):

s[2*i+1]=a[i]

return ''.join(s)

767 重構字串

重構字串 題目描述提示幫助提交記錄社群討論閱讀解答 隨機一題 給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,5...

767 重構字串

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。public string reorganizestring string s int counts new int 26 int maxcount 0 int length s.l...

767 重構字串

767.重構字串 給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,500 區間內。基本思路 貪心演算法,首先使用...