上公升下降字串

2022-01-10 08:39:44 字數 1215 閱讀 4267

給你乙個字串s,請你根據下面的演算法重新構造字串:

請你返回將s中字元重新排序後的結果字串。

輸入: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"

輸入:s = "rat"

輸出:"art"

解釋:單詞 "rat" 在上述演算法重排序以後變成 "art"

輸入:s = "leetcode"

輸出:"cdelotee"

/**

* @param s

* @return

*/var sortstring = function(s)

}for(let i=25;i>=0;--i) }}

return target;

};

題目挺長的,其實就是普通的字串的操作,並且由於題目中說明了是純小寫字母,也就是總量是確定的,那麼就可以不使用排序去統計數量,之後的操作正好也是順序遍歷與逆序遍歷即可完成的操作,拼接字串返回即可。首先定義乙個純物件作為雜湊表來記錄字串每種字元的個數,之後定義小寫字元的基準數值aascii碼值,之後構建乙個26個小寫字母的迴圈,將初始雜湊表的鍵對應的值定義為0,迴圈字串,將統計相應字母出現的次數,定義目標字串,如果目標字串與給定的字串長度相等則退出迴圈,之後定義乙個26字母正向迴圈,如果在雜湊表中這個字母的值大於0則將其拼接到目標字串並將該值減1,之後定義乙個26字母的逆向迴圈,按照同樣的規則將字元拼接,之後完成迴圈並返回目標字串即可。

1370 上公升下降字串

題目描述 給你乙個字串 s 請你根據下面的演算法重新構造字串 從 s 中選出 最小 的字元,將它 接在 結果字串的後面。從 s 剩餘字元中選出 最小 的字元,且該字元比上乙個新增的字元大,將它 接在 結果字串後面。重複步驟 2 直到你沒法從 s 中選擇字元。從 s 中選出 最大 的字元,將它 接在 ...

1370 上公升下降字串

上公升下降字串 給你乙個字串 s 請你根據下面的演算法重新構造字串 從 s 中選出 最小 的字元,將它 接在 結果字串的後面。從 s 剩餘字元中選出 最小 的字元,且該字元比上乙個新增的字元大,將它 接在 結果字串後面。重複步驟 2 直到你沒法從 s 中選擇字元。從 s 中選出 最大 的字元,將它 ...

1370 上公升下降字串

給你乙個字串s,請你根據下面的演算法重新構造字串 1 從 s 中選出 最小 的字元,將它 接在 結果字串的後面。2 從 s 剩餘字元中選出 最小 的字元,且該字元比上乙個新增的字元大,將它 接在 結果字串後面。3 重複步驟 2 直到你沒法從 s 中選擇字元。4 從 s 中選出 最大 的字元,將它 接...