Re: [閒聊] 每日LeetCode

作者: Rushia (みけねこ的鼻屎)   2023-08-23 19:58:41
https://leetcode.com/problems/reorganize-string/description/
767. Reorganize String
給你一個字串 s,求出這個 s 是否可以透過重排列得到一個相鄰字元都不相同的字串,
若可以則返回任意的結果,否則返回""。
Example 1:
Input: s = "aab"
Output: "aba"
Example 2:
Input: s = "aaab"
Output: ""
思路:
1.用貪婪去想,如果一個字串相鄰字串都不相同,那麼出現次數比較多的字元先放在
前面才比較有機會在後面不相鄰。
2.用 count 統計每個字母的出現次數,used 統計這輪是不是已經用過所有字母。
3.每輪都從還沒排列的字元列表中取出出現最多次的字元去排列,如果和前一個字元
不相同或就把他插入並更新次數,如果不同就嘗試其他沒用過的字元。
4.如果每個字元都用過但是滿足不了條件就提早返回 "",否則不斷 loop 直到構建的
字串長度等於 s 的長度即可。
Java Code:

Links booklink

Contact Us: admin [ a t ] ucptt.com