給定乙個字串s
,檢查是否能重新排布其中的字母,使得兩相鄰的字元不同。
若可行,輸出任意可行的結果。若不可行,返回空字串。
示例 1:
輸入: s = "aab"
輸出: "aba"
示例 2:
輸入: s = "aaab"
輸出: ""
注意:s 只包含小寫字母並且長度在[1, 500]區間內。
通過次數13,259
提交次數30,089
思路:基於計數的貪心演算法:按照每個字元出現的頻率進行排序,因此當字元相同時會連續出現,每隔乙個位置插入乙個字元,並且保證出現次數最多的字母排在最後並從小到大排序即可。
class solution
}
return new string(ans);
}}
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 區間內。將出現頻率次數最多的字母重新排列後不相鄰,則可以...