日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 791. 自定义字符串排序(map)

發布時間:2024/7/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 791. 自定义字符串排序(map) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 題目

字符串S和 T 只包含小寫字符。在S中,所有字符只會出現一次。

S 已經根據某種規則進行了排序。我們要根據S中的字符順序對T進行排序。更具體地說,如果S中x在y之前出現,那么返回的字符串中x也應出現在y之前。

返回任意一種符合條件的字符串T。

示例: 輸入: S = "cba" T = "abcd" 輸出: "cbad" 解釋: S中出現了字符 "a", "b", "c", 所以 "a", "b", "c" 的順序應該是 "c", "b", "a". 由于 "d" 沒有在S中出現, 它可以放在T的任意位置. "dcba", "cdba", "cbda" 都是合法的輸出。注意: S的最大長度為26,其中沒有重復的字符。 T的最大長度為200。 S和T只包含小寫字符。

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/custom-sort-string
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。

2. 解題

  • 用map記錄S字符出現的次序
  • 再對T的字符進行計數
  • 按照map的次序輸出字符,最后追加沒出現的字符
class Solution { public:string customSortString(string S, string T) {map<int,char> m;//S中的字符的出現次序--對應字符int i;for(i = 0; i < S.size(); ++i)m[i] = S[i];int count[26] = {0};for(i = 0; i < T.size(); ++i)count[T[i]-'a']++;//字符個數計數string ans;for(auto& mi : m)//默認按key升序{ans += string(count[mi.second-'a'], mi.second);count[mi.second-'a'] = 0;}for(i = 0; i < 26; ++i)if(count[i] != 0)//剩余不在S中的字符ans += string(count[i], 'a'+i);return ans;} };

總結

以上是生活随笔為你收集整理的LeetCode 791. 自定义字符串排序(map)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。