当前位置: 首页 > article >正文

Leetcode 791 Custom Sort String

题意:给定两个字符串,第一个字符串order,给定字符出现的先后顺序。 第二个字符串需要按照第一个字符串的顺序重新排列。没有在order字符串中出现的数组随意排列

https://leetcode.com/problems/custom-sort-string/

解答:先根据第二个字符串计算得到频率map,然后遍历order(确保有序), 根据频率map构建新的字符串,并且频率相应更新。当遍历到order字符串末尾后,加上此时频率map中不为0的那些字符。

class Solution {
public:
    string customSortString(string order, string s) {
        unordered_map<char, int> mp;
        string res;
        for(char ch : s) {
            mp[ch]++;
        }
        for(char ch : order) {
            while (mp.count(ch) && mp[ch] != 0) {
                res += ch;
                mp[ch]--;
            }
        }
        
        for(auto& [k,v] : mp) {
            while(mp[k] != 0) {
                res += k;
                mp[k]--;
            }
        }
        return res;
    }
};

时间复杂度 O ( n ) O(n) O(n) n n n是字符串的长度
空间复杂度 O ( n ) O(n) O(n),频率数组有开销


http://www.kler.cn/a/394977.html

相关文章:

  • 相机光学(四十)——2x2 Adjacent Pixel Binning
  • 【PowerHarmony】电鸿蒙学习记录-编写helloworld!
  • AUTOSAR_EXP_ARAComAPI的7章笔记(3)
  • react 中 useContext Hook 作用
  • python 同时控制多部手机
  • redis bind 127.0.0.1和bind 10.34.56.78的区别
  • 零碎01-登录验证
  • 基于SpringBoot的“生鲜交易系统”的设计与实现(源码+数据库+文档+PPT)
  • 电脑软件:推荐一款非常好用的PDF编辑、拆分、合并、对比工具
  • C# IEnumerator,IEnumerable ,Iterator
  • python解析网页上的json数据落地到EXCEL
  • Unity3D实现视频和模型融合效果
  • springboot整合websocket实现复制目录进度推送
  • Git服务部署教程
  • C#各版本汇总
  • C#从入门到放弃
  • 计算机视觉和机器人技术中的下一个标记预测与视频扩散相结合
  • 家政服务小程序,家政行业数字化发展下的优势
  • 深度学习:利用随机数据更快地测试一个新的模型在自己数据格式很复杂的时候
  • layui的table组件中,对某一列的文字设置颜色为浅蓝怎么设置
  • anzocapital 昂首资本:外汇机器人趋势判断秘籍
  • 108. UE5 GAS RPG 实现地图名称更新和加载关卡
  • 爱普生机器人EPSON RC
  • python贪心算法实现(纸币找零举例)
  • DNS解析 附实验:DNS正反向解析
  • C++常用的特性-->day05