当前位置: 首页 > news >正文

Leetcode 423. Reconstruct Original Digits from English

题意

给你字符串,保证这些字符串能组合成0-9的英文单词,如zero,one,two...,请你按顺序输出这些数字,如ezowrte,能组合成zero,two,那就输出02

解答

我发现zero,one,two...nine,在这些单词里,有些字母是只出现在一个单词里的,比如z出现在zero,那么我就能通过z来得到zero出现的次数,所以我就统计所有字母出现的次数来计算每个单词出现次数

public class Solution {
    public String originalDigits(String s) {
        StringBuilder sb = new StringBuilder();
        int[] cnt = new int[26];
        int[] num = new int[10];
        for (int i = 0; i < s.length(); i++) {
            cnt[s.charAt(i)-'a']++;
        }
        int x;
        // zero
        x = cnt['z'-'a'];
        num[0] = x;
        cnt['z'-'a'] -= x;
        cnt['e'-'a'] -= x;
        cnt['r'-'a'] -= x;
        cnt['o'-'a'] -= x;
        
        // two
        x = cnt['w'-'a'];
        num[2] = x;
        cnt['t'-'a'] -= x;
        cnt['w'-'a'] -= x;
        cnt['o'-'a'] -= x;
        
        
        // four
        x = cnt['u'-'a'];
        num[4] = x;
        cnt['f'-'a'] -= x;
        cnt['o'-'a'] -= x;
        cnt['u'-'a'] -= x;
        cnt['r'-'a'] -= x;
        
        // six
        x = cnt['x'-'a'];
        num[6] = x;
        cnt['s'-'a'] -= x;
        cnt['i'-'a'] -= x;
        cnt['x'-'a'] -= x;
        
        // one
        x = cnt['o'-'a'];
        num[1] = x;
        cnt['o'-'a'] -= x;
        cnt['n'-'a'] -= x;
        cnt['e'-'a'] -= x;
        
        // three
        x = cnt['r'-'a'];
        num[3] = x;
        cnt['t'-'a'] -= x;
        cnt['h'-'a'] -= x;
        cnt['r'-'a'] -= x;
        cnt['e'-'a'] -= x;
        cnt['e'-'a'] -= x;
        
        // five
        x = cnt['f'-'a'];
        num[5] = x;
        cnt['f'-'a'] -= x;
        cnt['i'-'a'] -= x;
        cnt['v'-'a'] -= x;
        cnt['e'-'a'] -= x;
        
        // seven
        x = cnt['v'-'a'];
        num[7] = x;
        cnt['s'-'a'] -= x;
        cnt['e'-'a'] -= x;
        cnt['v'-'a'] -= x;
        cnt['e'-'a'] -= x;
        cnt['n'-'a'] -= x;
        
        // nine
        x = cnt['n'-'a'];
        x/=2;
        num[9] = x;
        cnt['n'-'a'] -= x;
        cnt['i'-'a'] -= x;
        cnt['n'-'a'] -= x;
        cnt['e'-'a'] -= x;
        
        
        // eight
        x = cnt['e'-'a'];
        num[8] = x;
        cnt['e'-'a'] -= x;
        cnt['i'-'a'] -= x;
        cnt['g'-'a'] -= x;
        cnt['h'-'a'] -= x;
        cnt['t'-'a'] -= x;
        
        for (int i = 0; i < 10; i++) {
            while (num[i] > 0) {
                sb.append(""+i);
                num[i]--;
            }
        }
        return sb.toString();
    }
}

转载于:https://www.cnblogs.com/sevenun/p/6533035.html

相关文章:

  • JAVA加密类的使用
  • javascript数组去重复
  • Java中Collections的frequency方法
  • ng之ng-app指令
  • 使用命令wsimport构建WebService客户端
  • 【14点正式开始】技术与架构,解析如何将大数据最快落地到实践
  • Apache2.2和Apache2.4中httpd.conf配置文件 权限的异同
  • 分布式事务:不过是在一致性、吞吐量和复杂度之间,做一个选择
  • flask, SQLAlchemy, sqlite3 实现 RESTful API 的 todo list, 同时支持form操作
  • windows下npm默认的全局路径
  • 113期:电子书《阿里巴巴技术实战2016年刊》重磅发布,免费下载!
  • 硬币翻转问题,区间操作
  • java设计模式之建造者模式
  • jQuery-切换事件2
  • centos7 下进行数据库自动备份
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • 【个人向】《HTTP图解》阅后小结
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  •  D - 粉碎叛乱F - 其他起义
  • github指令
  • Javascript设计模式学习之Observer(观察者)模式
  • Java比较器对数组,集合排序
  • React-Native - 收藏集 - 掘金
  • 阿里云应用高可用服务公测发布
  • 关于extract.autodesk.io的一些说明
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 批量截取pdf文件
  • 前端面试之闭包
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 小程序button引导用户授权
  • 以太坊客户端Geth命令参数详解
  • 用Canvas画一棵二叉树
  • 在Unity中实现一个简单的消息管理器
  • 最简单的无缝轮播
  • const的用法,特别是用在函数前面与后面的区别
  • MyCAT水平分库
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • (13)Hive调优——动态分区导致的小文件问题
  • (Java)【深基9.例1】选举学生会
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (二)springcloud实战之config配置中心
  • (二)构建dubbo分布式平台-平台功能导图
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (六)Hibernate的二级缓存
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • .bat批处理(六):替换字符串中匹配的子串
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET下的多线程编程—1-线程机制概述
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Transactional类内部访问失效原因详解