题目
给你一个下标从 0 开始的整数数组 mapping ,它表示一个十进制数的映射规则,mapping[i] = j 表示这个规则下将数位 i 映射为数位 j 。

一个整数 映射后的值 为将原数字每一个数位 i (0 <= i <= 9)映射为 mapping[i] 。

另外给你一个整数数组 nums ,请你将数组 nums 中每个数按照它们映射后对应数字非递减顺序排序后返回。

注意:

如果两个数字映射后对应的数字大小相同,则将它们按照输入中的 相对顺序 排序。
nums 中的元素只有在排序的时候需要按照映射后的值进行比较,返回的值应该是输入的元素本身。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/sort-the-jumbled-numbers

输入:mapping = [8,9,4,0,2,1,3,5,7,6], nums = [991,338,38]
输出:[338,38,991]
解释:
将数字 991 按照如下规则映射:

  1. mapping[9] = 6 ,所有数位 9 都会变成 6 。
  2. mapping[1] = 9 ,所有数位 1 都会变成 8 。
    所以,991 映射的值为 669 。
    338 映射为 007 ,去掉前导 0 后得到 7 。
    38 映射为 07 ,去掉前导 0 后得到 7 。
    由于 338 和 38 映射后的值相同,所以它们的前后顺序保留原数组中的相对位置关系,338 在 38 的前面。
    所以,排序后的数组为 [338,38,991] 。

思路

考察点,排序,to_string、atoi

代码

class Solution {public:vector<int> sortJumbled(vector<int>& mapping, vector<int>& nums) {// 考察点,排序,to_string、atoiint n=nums.size();vector<pair<int,int>> mp;vector<int> ans;for(int i=0;i<n;i++){string temp=to_string(nums[i]);string t;for(int j=0;j<temp.size();j++){t+=to_string(mapping[temp[j]-'0']);}mp.push_back(make_pair(atoi(t.c_str()),nums[i]));}sort(mp.begin(),mp.end(),[](pair<int,int> &p1,pair<int,int>& p2){return p1.first<p2.first;});for(int i=0;i<n;i++){ans.push_back(mp[i].second);}return ans;}
};

将杂乱无章的数字排序相关推荐

  1. LeetCode 2191. 将杂乱无章的数字排序(自定义排序)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个下标从 0 开始的整数数组 mapping ,它表示一个十进制数的映射规则,mapping[i] = j 表示这个规则下将数位 i 映射为数位 j ...

  2. leetcode 将杂乱无章的数字排序

    给你一个下标从 0 开始的整数数组 mapping ,它表示一个十进制数的映射规则,mapping[i] = j 表示这个规则下将数位 i 映射为数位 j . 一个整数 映射后的值 为将原数字每一个数 ...

  3. mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  4. BitSet 数字排序

    2019独角兽企业重金招聘Python工程师标准>>> BitSet 数字排序 博客分类: java package tree2; import java.util.BitSet;p ...

  5. 杂记(1)java读取char类型2. 大小写字母的转换3. 字符串的拼接4. 一串数字排序

    1. java读取char类型 应为java中没有nextchar();函数,所以只能先读取一行,即 Sting a=sc.nextline(); char need=a.charAt(0);//取字 ...

  6. Mysql字符串截取 mysql将字符串字段转为数字排序或比大小

    SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...

  7. 生活中c语言排序案例,C语言之数字排序-基于冒泡排序法的一些案例(对未知数量的数字进行排序)...

    C语言之数字排序 在学习C语言的时候遇到了几个比较基础的排序问题,又结合了之前的处理方法.觉得在这个需要再系统地进行复习一下. 当我们在初学C语言的时候,我们都会结合三个数字的排序来理解计算机处理问题 ...

  8. 基于Hadoop 2.6.0运行数字排序的计算

    上个博客写了Hadoop2.6.0的环境部署,下面写一个简单的基于数字排序的小程序,真正实现分布式的计算,原理就是对多个文件中的数字进行排序,每个文件中每个数字占一行,排序原理是按行读取后分块进行排序 ...

  9. CCF201503-2 数字排序

    问题描述: 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺 ...

最新文章

  1. MBA 工商管理课程-风险型决策方法
  2. 高亚芳 mysql_MySQL · 专家投稿 · MySQL数据库SYS CPU高的可能性分析
  3. java socket 如何设置so_keepalive属性_socket通信的KeepAlive设定
  4. Android之jni出现JNIEnv has no member named ‘GetMehtodID‘解决办法
  5. 生物数据库建设,等你来~
  6. SpringBoot 的属性配置文件
  7. 随机排列算法(Fisher-Yates)
  8. imp执行错误IMP-00010
  9. 电池SOC预估存在哪些难题以及常用方法
  10. Vue项目设置浏览器小图标
  11. iOS 视频边下边播
  12. 修复常见ACPI问题(DSDT等)
  13. Linux设备驱动开发详解 第3版 (即 Linux设备驱动开发详解 基于最新的Linux 4 0内核 )前言
  14. QCustomPlot 示例实践--带填充的简单衰减正弦函数及其红色的指数包络
  15. Kaggle手机验证manually verified
  16. java_springboot水果购物商城销售管理系统
  17. 施努卡:机器人视觉传感器原理(视觉传感器公司)
  18. 如何搭建动态IP池?手把手教你3种方法!
  19. Lazada新手批量发布产品快速铺货详细教程:
  20. ITU-T的Recommendation和IETF的RFC标准文档的下载地址

热门文章

  1. Fedora-i3折腾笔记
  2. QT MDI多文档打开图像显示
  3. Saas和Paas是什么意思,区别是什么
  4. dell服务器uefi启动不了系统安装系统安装,戴尔做uefi系统-uefi启动进不去系统怎么办呀...
  5. word退格键不管用
  6. Missing semicolon
  7. Linux中的两种链接:硬链接(Hard Link)和软连接(Soft Link)
  8. 大一化学计算机模拟实验报告,化学实验报告万能模板.doc
  9. ChaoBlade 的实现原理
  10. 成都-地点-文创-锦里:锦里