leetcode 767 重構字串(貪心演算法)

2021-10-11 01:35:55 字數 813 閱讀 3428

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

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

示例 1:

輸入: s = 「aab」

輸出: 「aba」

class

solution

if(max>s.

length()

-max+1)

return

newstring()

;//最大出現次數太大了,不可能交替出現

stringbuilder stringbuilder=

newstringbuilder()

; priorityqueue<

int[

]> priorityqueue=

newpriorityqueue

<

>

((o1, o2)

-> o2[1]

-o1[1]

);//最大堆

for(

int i=

0;i<

26;i++

)//構造優先佇列

if(temp[i]!=0

) priorityqueue.

add(

newint

);while

(!priorityqueue.

isempty()

)//每次選剩餘容量最多的兩個字母

return stringbuilder.

tostring()

;}}

Leetcode 767 重構字串

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 解題思路 任務排程問題,排序。本題有點像之前的乙個任務排程問題,由於題量太大,忘了哪乙個。統計當前...

leetcode 767 重構字串

描述 給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,500 區間內。思路從小到大,交叉著插入 bool cmp...

LeetCode 767 重構字串

給定乙個字串s,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。若可行,輸出任意可行的結果。若不可行,返回空字串。示例 1 輸入 s aab 輸出 aba 示例 2 輸入 s aaab 輸出 注意 s 只包含小寫字母並且長度在 1,500 區間內。通過次數13,259 提交次數30,089思路 ...