上升下降字串java
給你一個字串 s ,請你根據下面的演算法重新構造字串:
從 s 中選出 最小 的字元,將它 接在 結果字串的後面。
從 s 剩餘字元中選出 最小 的字元,且該字元比上一個新增的字元大,將它 接在 結果字串後面。
重複步驟 2 ,直到你沒法從 s 中選擇字元。
從 s 中選出 最大 的字元,將它 接在 結果字串的後面。
從 s 剩餘字元中選出 最大 的字元,且該字元比上一個新增的字元小,將它 接在 結果字串後面。
重複步驟 5 ,直到你沒法從 s 中選擇字元。
重複步驟 1 到 6 ,直到 s 中所有字元都已經被選過。
在任何一步中,如果最小或者最大字元不止一個 ,你可以選擇其中任意一個,並將其新增到結果字串。
請你返回將 s 中字元重新排序後的 結果字串 。
示例 1:
輸入:s = “aaaabbbbcccc”
輸出:“abccbaabccba”
解釋:第一輪的步驟 1,2,3 後,結果字串為 result = “abc”
第一輪的步驟 4,5,6 後,結果字串為 result = “abccba”
第一輪結束,現在 s = “aabbcc” ,我們再次回到步驟 1
第二輪的步驟 1,2,3 後,結果字串為 result = “abccbaabc”
第二輪的步驟 4,5,6 後,結果字串為 result = “abccbaabccba”
示例 2:
輸入:s = “rat”
輸出:“art”
解釋:單詞 “rat” 在上述演算法重排序以後變成 “art”
示例 3:
輸入:s = “leetcode”
輸出:“cdelotee”
示例 4:
輸入:s = “ggggggg”
輸出:“ggggggg”
示例 5:
輸入:s = “spo”
輸出:“ops”
提示:
1 <= s.length <= 500
s 只包含小寫英文字母。
來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/increasing-decreasing-string
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。
ps:今天我的思路居然和題解一樣,而且沒有題解二,今天的題解不太行啊
class Solution {
public String sortString(String s) {
int[] num = new int[26];
for(int i=0;i<s.length();i++)
{
num[(s.charAt(i)-'a')]++;
}
StringBuffer res = new StringBuffer();
int count = 0;
while(count<s.length())
{
for(int i=0;i<26;i++)
{
if(num[i]>0)
{
num[i]--;
count++;
res.append((char)(i+'a'));
}
}
for(int i=25;i>=0;i--)
{
if(num[i]>0)
{
num[i]--;
count++;
res.append((char)(i+'a'));
}
}
}
return res.toString();
}
}
相關文章
- 每日一道Leetcode——上升下降字串LeetCode字串
- 我的力扣演算法1370-上升下降字串力扣演算法字串
- GfK:UHD電視銷量上升,但營收下降營收
- 如何從容面對網站seo排名上升或者下降?網站
- POWERBI_1分鐘學會_連續上升或下降指標監控指標
- python 如何判斷一組數呈上升還是下降趨勢Python
- java字串Java字串
- Creative Strategies:中國三四線城市iPhone保有量上升 Android吸引力下降iPhoneAndroid
- Java™ 教程(字串)Java字串
- java字串解析Java字串
- java------字串Java字串
- JAVA字串轉日期或日期轉字串Java字串
- java字串常用方法Java字串
- Java中的字串Java字串
- JAVA字串比較Java字串
- java 字串轉intJava字串
- 學習Java: Java中的字串Java字串
- Java™ 教程(比較字串和字串的部分)Java字串
- 最新資料顯示:Win10作業系統市場份額沒有上升反而略有下降Win10作業系統
- Java-string字串Java字串
- Java基礎系列—字串Java字串
- Java字串那些事兒Java字串
- Java解析Json字串JavaJSON字串
- 【java初探】——格式化字串Java字串
- 【JAVA】判斷字串非空Java字串
- Java字串編碼介紹Java字串編碼
- Java 11字串API有更新Java字串API
- leetcode:字串相乘(java)LeetCode字串Java
- java——split的用法(字串拆分)Java字串
- Java中的字串池概念Java字串
- Java基礎之二_字串Java字串
- java split進行字串分割Java字串
- java 拆分與合併字串Java字串
- 字串全排列 java實現字串Java
- Java 的字串和子串Java字串
- java字串轉Base64Java字串
- 最長上升子序列
- 不再怕面試被考字串---詳解Java中的字串面試字串Java