Leetcode 423. Reconstruct Original Digits from English 重构数字 解题报告

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复 本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。 阅读详情

1 解题思想

这道题是让我们给了我们一个字符串,字符串里全都是用英文写的数字,但是字母顺序是打乱的

现在我们需要还原出来其真正的数字,字符串肯定是合法的

解题的核心在于,0~9对应的英文字母,有那么些规律,可以从中找到相关的规律。

* zero:0
     * one:1
     * two:2
     * three:3
     * four:4
     * five:5
     * six:6
     * seven:7
     * eight:8
     * nine:9
     * 
     * 我们可以观察得到:
     * 只有Zero:包含z,剩下的都没有
     * 只有Two:包含w,其他都没有
     * 除了0,2,只有six包含x
     * 除了0,2,6,只有.... 等等以此类推
     * 
     * 找到每一个规律后,就可以开始了,这里我就不详细写了

2 原题

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order.
Note:
Input contains only lowercase English letters.
Input is guaranteed to be valid and can be transformed to its original digits. That means invalid inputs such as "abc" or "zerone" are not permitted.
Input length is less than 50,000.

Example 1:
Input: "owoztneoer"

Output: "012"

Example 2:
Input: "fviefuro"

Output: "45"

3 AC解

public class Solution {
    public String originalDigits(String s) {
        /**
         * 字符串表示了一些英文的数字,但是已经乱序了,现在要求将其转化为具体的数值
         * 
         * 
         * 再次特别注明:我发代码的时候是题目当天出来的时候,已经AC了,但是Leetcode可能会更改测试用例,导致代码无法AC
         * 如果出现上述情况,请给我留言,我会修正更新代码
         * 
         * zero:0
         * one:1
         * two:2
         * three:3
         * four:4
         * five:5
         * six:6
         * seven:7
         * eight:8
         * nine:9
         * 
         * 我们可以观察得到:
         * 只有Zero:包含z,剩下的都没有
         * 只有Two:包含w,其他都没有
         * 除了0,2,只有six包含x
         * 除了0,2,6,只有.... 等等以此类推
         * 
         * 找到每一个规律后,就可以开始了,这里我就不详细写了
         * 
         * */
         //只包含0~9,我直接if了
         char chars[] = s.toCharArray();
         int n = s.length();
         int[] count = new int[10];
         for (int i = 0; i < n; i++){
            char c = s.charAt(i);
            if (c == 'z') count[0]++; //只有0有z
            else if (c == 'w') count[2]++; // 2 -> w
            else if (c == 'x') count[6]++; // 6 -> x
            else if (c == 'g') count[8]++; // 8-> g
            else if (c == 'u') count[4]++; // 4 -> u
            //上面是独有的,下面是可以计算出来的
            else if (c == 's') count[7]++; // 6/7 ->s
            else if (c == 'f') count[5]++; // 4/5 -> f
            else if (c == 'h') count[3]++; // 3/8 - > h
            else if (c == 'i') count[9]++; // 5/6/8/9 ->i
            else if (c == 'o') count[1]++; // 0/1/2/4 ->o
         }
         //计算
         count[7] -= count[6];
         count[5] -= count[4];
         count[3] -= count[8];
         count[9] = count[9] - count[8] - count[5] - count[6];
         count[1] = count[1] - count[0] - count[2] - count[4];
         StringBuilder sb = new StringBuilder();
         for (int i = 0; i <= 9; i++){
            for (int j = 0; j < count[i]; j++){
                sb.append(i);
            }
         }
        return sb.toString();


    }
}

再次特别注明:我发代码的时候是题目当天出来的时候,已经AC了,但是Leetcode可能会更改测试用例,导致代码无法AC

这里写图片描述
如果出现上述情况,请给我留言,我会修正更新代码

esp32c6 开发实战:低功耗蓝牙(BLE)开发 蓝牙栈在此程序流程中已经启动并运行,但是应用程序的功能尚未定义。功能的定义是通过响应事件来实现的,当其他设备尝试读取或写入参数以及建立连接时就会触发事件回调函数处理。BT控制器在控制器端实现主机控制器接口(HCI),链路层(LL)和物理层(PHY)。BT控制器对用户应用程序不可见,并处理BLE堆栈的较低层。蓝牙堆栈(Bluedroid stack)定义了经典蓝牙(BT Classic)和低功耗蓝牙(BLE)的通用定义和API。的判断)等对于启动低功耗蓝牙来说不重要的代码,函数初始化和启用BT控制器。 阅读详情

相关推荐

给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格

题目描述 给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello” 输入描述: 输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符) 输出描述: 对于每个测试示例,要求输出句子中单词反转后形成的句子

[LeetCode解题报告] 423. 从英文中重建数字

脑筋急转弯

liuliangcan的博客 367

遥感图像处理Envi 5.6安装包(完整版)

遥感图像处理Envi 5.6安装包(完整版)。安装教程参考:https://geostorm.blog.csdn.net/article/details/131818346?spm=1001.2014.3001.5502

leetcode每日一题-423:从英文中重建数字

leetcode每日一题-423:从英文中重建数字 链接 从英文中重建数字 题目 分析 首先我们先分析每个字母的组成,然后发现一些字符只在一个单词中出现,我们先去统计一下这些单词个数。 z,w,u,x,g都只出现在一个数字中,也就是0,2,4,6,8,我们用哈希表统计一下s字符串中各个字符的数量,就可以知道0,2,4,6,8的数量,然后我们注意一下只在两个数字中出现的字符。 h 只在 3,8 中出现。由于我们已经知道了 8 出现的次数,因此可以计算出 3 出现的次数。 f 只在 4,5 中出现

qq_45826803的博客 4992

LeetCode-Python-423. 从英文中重建数字

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: ...

Keep Coding 802

leetcode 423. 从英文中重建数字python

题目描述: 题解一:未通过 1.word_to_num保存对应位置数字对应的单词。 2.在输入s中,从word_to_num第一个位置单词开始,如果可以找到,则向nums加入对应数字。 3.将nums中结果以字符串形式输出。 结果:未通过,没有考虑到同一个数字出现多次的情况 class Solution(object): def originalDigits(self, s): word_to_num = ["zero","one","two","three",".

ganggang的博客 344

LeetCode 423. 从英文中重建数字(C++、python)

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: ...

qq_27060423的博客 1011

LeetCode //C - 423. Reconstruct Original Digits from English

【代码】LeetCode //C - 423. Reconstruct Original Digits from English

Made in Code 1440

LeetCode 423. Reconstruct Original Digits from English 解题报告

LeetCode 423. Reconstruct Original Digits from English 解题报告

骆小坑的填坑之旅 1651

LeetCode423. Reconstruct Original Digits from English 解题报告(Python)

LeetCode423. Reconstruct Original Digits from English 解题报告(Python) 标签: LeetCode 题目地址:https://leetcode.com/problems/reconstruct-original-digits-from-english/description/ 题目描述: Given a non-emp...

负雪明烛 1282

leetcode423. Reconstruct Original Digits from English

题目如下: Given anon-emptystring containing an out-of-order English representation of digits0-9, output the digits in ascending order. Note: Input contains only lowercase English letters. Input...

weixin_34320724的博客 153

LeetCode - 423. Reconstruct Original Digits from English

解题代码: classSolution { public:     string originalDigits(string s) {         vector count(26,0);         string res;         int a[10];         for(int i=0;i             count[s[i]-'a']++;    

u014642924的博客 356

Leetcode 423. Reconstruct Original Digits from English

【代码】Leetcode 423. Reconstruct Original Digits from English

小白菜又菜 364

LeetCode 423. Reconstruct Original Digits from English解题笔记

1. 题目描述https://leetcode.com/problems/reconstruct-original-digits-from-english/#/description Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits

zhyh1435589631的专栏 617

[LeetCode] 423. Reconstruct Original Digits from English 解题报告

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order. Note: Input contains only lowercase English letters.Input is g

萌萌小七的专栏 425

leetcode 423. 从英文中重建数字

给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: “owoztneoer” 输出: “012” (zeroonetwo) 示例 2: 输入: “f...

用通俗的语言讲述严谨的科学方法 1552

Leetcode 423.从英文中重建数字

从英文中重建数字 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (ze...

kexinxin1的博客 796

leetcode 423. Reconstruct Original Digits from English 乱序英文字符串恢复数字 + 发现规律

Given a non-empty string containing an out-of-order English representation of digits 0-9, output the digits in ascending order. Note: Input contains only lowercase English letters. Input is guarant

JackZhangNJU的专栏 886

LeetCode 423. 从英文中重建数字(找规律)

1. 题目 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 1: 输入: "owoztneoer" 输出: "012" (zeroonetwo) 示例 2: 输入: "fvi...

Michael是个半路程序员 1108

Leetcode-423:从英文中重建数字

题目链接 https://leetcode-cn.com/problems/reconstruct-original-digits-from-english/ 题目 给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。 注意: 输入只包含小写英文字母。 输入保证合法并可以转换为原始的数字,这意味着像 "abc" 或 "zerone" 的输入是不允许的。 输入字符串的长度小于 50,000。 示例 示例 1: 输入: "owoztneoer" 输出:

道纪书生的博客 316
上一篇: Leetcode 125. Valid Palindrome 回文验证 解题报告
下一篇: Leetcode 424. Longest Repeating Character Replacement 替换得到最长序列 解题报告
学术状态抽奖器
博客等级 码龄14年 249粉丝 270原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值