【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列
2021/11/24 23:15:24
本文主要是介绍【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天是坚持每日一题打卡的第二十五天
题目链接:https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/
题解汇总:https://zhanglong.blog.csdn.net/article/details/121071779
题目描述
给你一个字符串 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 保证是一个符合题目要求的字符串
试着把0-9的英文写出来,发现可以用每个数字中独特的字母代替出现的次数,如zero中的z。
class Solution { public: string originalDigits(string s) { unordered_map<char, int>count; // 统计每个英文名数字出现的次数 for (auto i : s) count[i]++; int arr[15] = {0}; arr[0] = count['z']; // zero,z arr[2] = count['w']; // two,w arr[4] = count['u']; // four,u arr[6] = count['x']; // six,x arr[7] = count['s']; // seven,s arr[8] = count['g']; // eight,g arr[5] = count['f'] - arr[4]; // five,f arr[3] = count['t'] - arr[2] - arr[8]; // three arr[1] = count['o'] - arr[0] - arr[2] - arr[4]; arr[9] = count['i'] - arr[5] - arr[6] - arr[8]; string res; for (int i = 0; i < 10; ++i) { while (arr[i]--) res += (char)('0' + i); } return res; } };
测试用例:"onetwothreefourfivesixseveneightnine"
这篇关于【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享
- 2024-11-22怎么实现ansible playbook 备份代码中命名包含时间戳功能?-icode9专业技术文章分享