首页 > 其他分享 >791. 自定义字符串排序 ----- 自定义sort、权值排序、计数排序

791. 自定义字符串排序 ----- 自定义sort、权值排序、计数排序

时间:2022-11-13 14:11:48浏览次数:52  
标签:sort ch string 自定义 ans freq 排序 order

给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的,并且以前按照一些自定义的顺序排序。

对 s 的字符进行置换,使其与排序的 order 相匹配。更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中, x 也应该出现在 y 之前。

返回 满足这个性质的 s 的任意排列 。

 

示例 1:

输入: order = "cba", s = "abcd"
输出: "cbad"
解释:
“a”、“b”、“c”是按顺序出现的,所以“a”、“b”、“c”的顺序应该是“c”、“b”、“a”。
因为“d”不是按顺序出现的,所以它可以在返回的字符串中的任何位置。“dcba”、“cdba”、“cbda”也是有效的输出。
示例 2:

输入: order = "cbafg", s = "abcd"
输出: "cbad"
 

提示:

1 <= order.length <= 26
1 <= s.length <= 200
order 和 s 由小写英文字母组成
order 中的所有字符都 不同

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/custom-sort-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
public:
    string customSortString(string order, string s) {
        vector<int> val(26); //建立权值表
        for (int i = 0; i < order.size(); ++i) {
            val[order[i] - 'a'] = i + 1; // 对order中出现的字母进行权值赋值
        }
        sort(s.begin(), s.end(), [&](char c0, char c1) { // 按权值排序
            return val[c0 - 'a'] < val[c1 - 'a'];
        });
        return s;
    }
};

标签:sort,ch,string,自定义,ans,freq,排序,order
From: https://www.cnblogs.com/slowlydance2me/p/16885886.html

相关文章

  • Java:自定义排序与sort()函数
    自定义排序与Arrays.sort()本篇题目来源:2022/11/13Leetcode每日一题:https://leetcode.cn/problems/custom-sort-string给定两个字符串order和s。order的所有单词都......
  • 怎么封装一个vue的自定义指令
    自定义指令分为全局和局部的指令;1.自定义全局指令:在mian.js中,使用Vue.directive(‘指令名’, 配置对象)2.局部自定义指令在组件中使用directives......
  • 排序专题
    快速排序#include<bits/stdc++.h>usingnamespacestd;inta[5]={5,1,2,4,3};intpartition(intbegin,intend){intpivot=begin-1;for(inti......
  • 第四十五章 开发自定义标签 - 规则和操作
    第四十五章开发自定义标签-规则和操作CSP允许你开发自定义的HTML标签用于CSP文件。CSP标记语言本身是使用自定义标记机制实现的。自定义标签提供了一种方式:使用熟悉......
  • 自定义标记
    目录介绍注册标记使用标签介绍自定义标记首先要在pytest.ini文件当中注册也可以通过fixture注册,不注册的话不影响使用但是执行的时候就会有警告注册标记#pytest.in......
  • 堆排序用法
    因为堆结构只保证根节点比双子节点都大或小1  求最小的n个数:   构建n个数的大顶堆,依次弹出堆顶再往下调整(用例省略)2  求最大的n个数:   构建n个数的......
  • 快速排序需要注意的问题
    1  左右哨兵等于pivot的情况要接着走,不然有可能一直不动,无限循环2  需要先走右指针再走左指针,因为pivot在最左侧,最终停留点应该比pivot小,这样交换后小的在前; ......
  • AtCoder Beginner Contest 277 F Sorting a Matrix
    SortingaMatrix拓扑序首先可以明确无论怎么交换行列,原本在同一行或者同一列的元素,还是会处于同一行或者同一列条件一每行每行地看,如果能满足从小到大的条件,说明第......
  • 第二章--使用自定义类
    代码:publicclassClassAndObjectTest{ publicstaticvoidmain(String[]args) { //创建类的实例,定义一个对象变量引用这一实例 MyClassobj=newMyClass(); //......
  • Sort List
    SourceSortalinkedlistinO(nlogn)timeusingconstantspacecomplexity.题解1-归并排序(链表长度求中间节点)链表的排序操作,对于常用的排序算法,能达到O(n......