题目:

给你一个字符串 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 保证是一个符合题目要求的字符串

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/reconstruct-original-digits-from-english
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

1.首先对每个字母进行词频统计;

2.可以观察出:

  • z,w,u,x,g都只在0,2,4,6,8中出现,故这几个字母出现几次,这几个数字就出现几次;
  • h只有3和8中出现,已知8的次数,可以得知3的次数;
  • f只有4和5中出现,已知4的次数,可以得知5的次数;
  • s只有6和7中出现,已知6的次数,可以得知7的次数;
  • o有0、1、2、4中出现,前面已知0、2、4的次数,可以得知1的次数;
  • i有5、6、8、9中出现,前面已知5、6、8的次数,可以得知9的次数。

3.然后按照升序进行添加,最后转换成字符串进行返回。

 代码:

 1 class Solution {
2 public String originalDigits(String s) {
3 int[] count = new int[26];
4 for(int i = 0; i< s.length(); i++){
5 count[s.charAt(i) - 'a'] ++;
6 }
7 int[] num = new int[10];
8 num[0] = count['z' - 'a'];
9 num[2] = count['w' - 'a'];
10 num[6] = count['x' - 'a'];
11 num[8] = count['g' - 'a'];
12 num[4] = count['u' - 'a'];
13 num[3] = count['h' - 'a'] - num[8];
14 num[5] = count['f' - 'a'] - num[4];
15 num[7] = count['s' - 'a'] - num[6];
16 num[1] = count['o' - 'a'] - num[0] - num[2] - num[4];
17 num[9] = count['i' - 'a'] - num[5] - num[6] - num[8];
18 StringBuffer res = new StringBuffer();
19 for(int i = 0 ; i < 10; i++){
20 for(int j = num[i]; j > 0; j--){
21 res.append(i);
22 }
23 }
24 return res.toString();
25
26 }
27 }

力扣423(java)-从英文中重建数字(中等)的更多相关文章

  1. Java实现 LeetCode 423 从英文中重建数字

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

  2. Leetcode 423.从英文中重建数字

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

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

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

  4. [LeetCode] Reconstruct Original Digits from English 从英文中重建数字

    Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...

  5. [Swift]LeetCode423. 从英文中重建数字 | Reconstruct Original Digits from English

    Given a non-empty string containing an out-of-order English representation of digits 0-9, output the ...

  6. java截取字符串中的数字

    java从字符串中提取数字 随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取 ...

  7. java从字符串中提取数字的简单实例

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...

  8. java从字符串中提取数字

    string类函数的补充说明: trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,例子如下:String s=" Hello World ".tri ...

  9. java 获取String中的数字

    随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法, ...

  10. java 从String中匹配数字,并提取数字

    方法如下: private List<FieldList> GetTmpFieldsList(List<String> FieldsList,String tmptableNa ...

随机推荐

  1. Java GUI swing 可执行程序 jar (java -jar)idea

    创建项目 可以用maven idea设置 into 那个 参考资料 Java 基础 https://www.liaoxuefeng.com/wiki/1252599548343744/12604545 ...

  2. pfx文件导出pem和私钥,更换网站域名证书

    openssl 路径: C:\Program Files\OpenSSL-Win64\bin -- 导出pem证书openssl pkcs12 -in C:\BackUp\Lightning\cert ...

  3. JavaXMail发送邮件功能实现

    原文:JavaXMail发送邮件功能实现 | Stars-One的杂货小窝 好久之前实现的邮件发送功能,一直没整理出来,考虑到之后有个项目需要,先整理一波 提示: 本文代码例子是使用Kotlin语言编 ...

  4. 前后端分离之jQuery入门

    jQuery入门 基本概念:jQuery是一个快速,小型且功能丰富的JavaScript库.借助易于使用的API(可在多种浏览器中使用),使HTML文档的遍历和操作,事件处理,动画和Ajax等事情变得 ...

  5. day02-自己实现Mybatis底层机制-01

    自己实现Mybatis底层机制-01 主要实现:封装SqlSession到执行器+Mapper接口和Mapper.xml+MapperBean+动态代理Mapper的方法 1.Mybatis整体架构分 ...

  6. YUV亮度扫描小工具,如何确定尺寸以及错误尺寸下图像发生什么变化

    地址https://github.com/bbqz007/zhelper-wxWidgets 当你有一个帧yuv,但却不知道长宽还有格式时,本demo可以帮你通过扫描Y分量灰度图,确定长宽,然后选择合 ...

  7. 掌握Python库的Bokeh,就能让你的交互炫目可视化

    本文分享自华为云社区<Bokeh图形魔法:掌握绘图基础与高级技巧,定制炫目可视化>,作者: 柠檬味拥抱. Bokeh是一个用于创建交互式可视化图形的强大Python库.它不仅易于使用,而且 ...

  8. leetcode数据库sql之Department Top Three Salaries

    leetcode原文引用: How would you print just the 10th line of a file? For example, assume that file.txt ha ...

  9. live555使用NDK21编译出arm64-v8a和armeabi-v7a

    一.编译环境 ubuntu环境 NDK21,下载地址链接 live555源码live555源码 二.编写编译脚本 环境和源码弄好后,就可以开始进行编写编译脚本 1 编写arm64-v8a脚本 将下载好 ...

  10. 29_SDL多线程与锁机制

    目录 一.简介 二.代码实现: 2.1.声明 2.2.创建锁.消费者 2.3.销毁 2.4.实现生产者逻辑 2.5.实现销毁者逻辑 2.6.创建生产者 三.分装SDL锁机制 condmutex.h c ...