423. 从英文中重建数字
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
- 我们发现对于guwxz,他们只在特定的数字8 4 2 6 0里面出现,因此我们只有检查到这些字母,就可以确定其对应数字的出现次数.
- 对于h来说,它出现在3 8两个数字里面,因为我们通过g可以得出8的出现次数,因此我们可以通过这个得出3的出现次数。
- 对于s来说,它出现在6 7两个数字里面,因为我们通过x可以得出7的出现次数,因此我们可以通过这个得出6的出现次数。
- 对于f来说,它出现在5 4两个数字里面,因为我们通过u可以得出4的出现次数,因此我们可以通过这个得出5的出现次数。
- 因为o在0 1 2 4中出现,在上面我们已经求出了1 2 4 的出现次数,因此同理可得0的出现次数
- 因为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. 从英文中重建数字相关推荐
- 【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列
今天是坚持每日一题打卡的第二十五天 题目链接:https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/ 题解 ...
- 423 从英文中重建数字(找规律)
1. 问题描述: 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 &quo ...
- LeetCode 423. 从英文中重建数字(找规律)
1. 题目 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 "a ...
- leetcode 423 从英文中重建数字
https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/ 题目 给你一个字符串s,其中包含字母顺序打乱的用英 ...
- 【LeetCode笔记 - 每日一题】423. 从英文中重建数字(Java、字符串、偏思路)
文章目录 题目描述 思路 && 代码 题目描述 看了题目以后想到啥? 字符数量统计 银行家算法逐个拆解 建立数字 - 字符串的全局映射 思路 && 代码 抄答案了,采取 ...
- leetcode 423. Reconstruct Original Digits from English | 423. 从英文中重建数字(Java)
题目 https://leetcode.com/problems/reconstruct-original-digits-from-english/ 题解 class Solution {public ...
- Reconstruct Original Digits from English 从英文中重建数字
给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9.按升序输出原始的数字. 注意: 输入只包含小写英文字母. 输入保证合法并可以转换为原始的数字,这意味着像 "abc&quo ...
- 【转】SQL函数:字符串中提取数字,英文,中文,过滤重复字符
SQL函数:字符串中提取数字,英文,中文,过滤重复字符 --提取数字 IF OBJECT_ID('DBO.GET_NUMBER') IS NOT NULL DROP FUNCTION DBO.GET_ ...
- isalnum()函数:找出str字符串中为英文字母或数字的字符
找出str字符串中为英文字母或数字的字符 (1)Linux下编程用到的函数是:int isalnum(int c) 返回值:若参数c为字母或数字,则返回TRUE:否则返回NULL(0) #includ ...
最新文章
- iOS学习笔记2-微博cell界面的实现
- java中单例设计模式
- 几本对于笔试和面试有用的书
- 【转】子网划分实例与讲解
- mapper中的CDATA标签的用法
- boost::log模块实现从设置文件初始化库的示例
- SpringBoot开发案例之整合Spring-data-jpa
- Unity3D基础15:触发器
- Spring Boot ES 实战,直接拿来用!
- Linux下安装Scala
- 国际标准行业分类(ISIC Rev 4.0)
- matlab uicontrol 居中,uicontrol 用法【matlab】
- 儿童节特刊 | 如何练好手眼协调能力(手眼标定详解,附源码)
- 柯桥增值税留抵如何退税?
- Dva 的connect使用
- mysql连接timeout_mysql 连接超时wait_timeout问题解决
- 什么是纯虚函数?什么是抽象类?
- (六)Linux环境部署(Centos+Nginx+Tomcat+Mysql) - 常用命令总结
- 树莓派基于ffmpeg+阿里云流媒体服务器实现视频直播
- 前端-html 点击 跳转页面