【解题报告】Leecode 423. 从英文中重建数字——Leecode每日一题系列
生活随笔
收集整理的這篇文章主要介紹了
【解题报告】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,zarr[2] = count['w']; // two,warr[4] = count['u']; // four,uarr[6] = count['x']; // six,xarr[7] = count['s']; // seven,sarr[8] = count['g']; // eight,garr[5] = count['f'] - arr[4]; // five,farr[3] = count['t'] - arr[2] - arr[8]; // threearr[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每日一题系列的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BeanUtils.copyProper
- 下一篇: 【解题报告】Leecode 859. 亲