423. 从英文中重建数字

给你一个字符串 s ,其中包含字母顺序打乱的用英文单词表示的若干数字(0-9)。按 升序 返回原始的数字。

例 1:输入:s = "owoztneoer"
输出:"012"示例 2:输入:s = "fviefuro"
输出:"45"

提示:

  • 1 <= s.length <= 105
  • s[i] 为 [“e”,“g”,“f”,“i”,“h”,“o”,“n”,“s”,“r”,“u”,“t”,“w”,“v”,“x”,“z”] 这些字符之一
  • s 保证是一个符合题目要求的字符串

解题思路

首先我们可以统计每个字母分别在哪些数字中出现:

字母   数字
e   0 1 3 5 7 8 9
f   4 5
g   8
h   3 8
i   5 6 8 9
n   1 7 9
o   0 1 2 4
r   0 3 4
s   6 7
t   2 3 8
u   4
v   5 7
w   2
x   6
z   0
  1. 我们发现对于guwxz,他们只在特定的数字8 4 2 6 0里面出现,因此我们只有检查到这些字母,就可以确定其对应数字的出现次数.
  2. 对于h来说,它出现在3 8两个数字里面,因为我们通过g可以得出8的出现次数,因此我们可以通过这个得出3的出现次数。
  3. 对于s来说,它出现在6 7两个数字里面,因为我们通过x可以得出7的出现次数,因此我们可以通过这个得出6的出现次数。
  4. 对于f来说,它出现在5 4两个数字里面,因为我们通过u可以得出4的出现次数,因此我们可以通过这个得出5的出现次数。
  5. 因为o在0 1 2 4中出现,在上面我们已经求出了1 2 4 的出现次数,因此同理可得0的出现次数
  6. 因为i在5 6 8 9中出现,在上面我们已经求出了5 6 8 的出现次数,因此同理可得9的出现次数

代码

class Solution {public:string originalDigits(string s) {map<char,int> m;for (auto  c:s) ++m[c];m['8']=m['g'];m['4']=m['u'];m['2']=m['w'];m['6']=m['x'];m['0']=m['z'];m['3']=m['h']-m['8'];m['7']=m['s']-m['6'];m['5']=m['f']-m['4'];m['1']=m['o']-m['0']-m['2']-m['4'];m['9']=m['i']-m['5']-m['6']-m['8'];string  res;for (int i = 0; i < 10; ++i) {for (int j = 0; j < m['0'+i]; ++j) {res+=char ('0'+i);}}return res;}
};

423. 从英文中重建数字相关推荐

  1. 【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列

    今天是坚持每日一题打卡的第二十五天 题目链接:https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/ 题解 ...

  2. 423 从英文中重建数字(找规律)

    1. 问题描述: 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 &quo ...

  3. LeetCode 423. 从英文中重建数字(找规律)

    1. 题目 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 "a ...

  4. leetcode 423 从英文中重建数字

    https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/ 题目 给你一个字符串s,其中包含字母顺序打乱的用英 ...

  5. 【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)

    文章目录 题目描述 思路 && 代码 题目描述 看了题目以后想到啥? 字符数量统计 银行家算法逐个拆解 建立数字 - 字符串的全局映射 思路 && 代码 抄答案了,采取 ...

  6. leetcode 423. Reconstruct Original Digits from English | 423. 从英文中重建数字(Java)

    题目 https://leetcode.com/problems/reconstruct-original-digits-from-english/ 题解 class Solution {public ...

  7. Reconstruct Original Digits from English 从英文中重建数字

    给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 "abc&quo ...

  8. 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符

    SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...

  9. isalnum()函数:找出str字符串中为英文字母或数字的字符

    找出str字符串中为英文字母或数字的字符 (1)Linux下编程用到的函数是:int isalnum(int c) 返回值:若参数c为字母或数字,则返回TRUE:否则返回NULL(0) #includ ...

最新文章

  1. iOS学习笔记2-微博cell界面的实现
  2. java中单例设计模式
  3. 几本对于笔试和面试有用的书
  4. 【转】子网划分实例与讲解
  5. mapper中的CDATA标签的用法
  6. boost::log模块实现从设置文件初始化库的示例
  7. SpringBoot开发案例之整合Spring-data-jpa
  8. Unity3D基础15:触发器
  9. Spring Boot ES 实战,直接拿来用!
  10. Linux下安装Scala
  11. 国际标准行业分类(ISIC Rev 4.0)
  12. matlab uicontrol 居中,uicontrol 用法【matlab】
  13. 儿童节特刊 | 如何练好手眼协调能力(手眼标定详解,附源码)
  14. 柯桥增值税留抵如何退税?
  15. Dva 的connect使用
  16. mysql连接timeout_mysql 连接超时wait_timeout问题解决
  17. 什么是纯虚函数?什么是抽象类?
  18. (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结
  19. 树莓派基于ffmpeg+阿里云流媒体服务器实现视频直播
  20. 前端-html 点击 跳转页面

热门文章

  1. 【Leetcode】112. 路径总和
  2. pthread_detach函数
  3. 萌新向Python数据分析及数据挖掘 第三章 机器学习常用算法 第四节 PCA与梯度上升 (上)理解篇...
  4. 《HTTP 权威指南》笔记:第十五章 实体与编码
  5. linux—命令汇总
  6. PHP--------微信网页开发实现微信扫码功能
  7. 数据存储(SharedPreferences存储)
  8. 考研编程练习----排名
  9. Hdu 4293 DP
  10. DHCP|什么是DHCP|DHCP介绍