从零开始刷力扣(四十二)——423. 从英文中重建数字

分类:字符串

题目描述:
给定一个非空字符串,其中包含字母顺序打乱的英文单词表示的数字0-9。按升序输出原始的数字。
注意:
输入只包含小写英文字母。

  • List item
  • 输入保证合法并可以转换为原始的数字,这意味着像 “abc” 或 “zerone” 的输入是不允许的。
  • 输入字符串的长度小于 50,000。
    示例 1:
输入: "owoztneoer"

输出: "012" (zeroonetwo)

示例 2:

输入: "fviefuro"

输出: "45" (fourfive)

思路:

找出 0-9 相对应地英文中,每个单词独有的字母的次数:
z 只在 0 中出现;
w 只在 2 中出现;
u 只在 4 中出现;
x 只在 6 中出现;
g 只在 8 中出现;
h 在 3 和 8 中出现;
f 在 5 和 4 中出现;
o 在 1、0、2 和 4 中出现;
v 在 7 和 5 中出现;
i 在 9、5、6 和 8 中出现;

代码实现

/**
 * @param {string} s
 * @return {string}
 */
var originalDigits = function(s) {
    let arr0 = s.match(/z/g);
    let arr2 = s.match(/w/g);
    let arr4 = s.match(/u/g);
    let arr6 = s.match(/x/g);
    let arr8 = s.match(/g/g);
    let arr3 = s.match(/h/g);
    let arr5 = s.match(/f/g);
    let arr1 = s.match(/o/g);
    let arr7 = s.match(/v/g);
    let arr9 = s.match(/i/g);

    let count0 = 0, count1 = 0, count2 = 0, count3 = 0, count4 = 0, count5 = 0, count6 = 0, count7 = 0, count8 = 0, count9 = 0;
    if(arr0) count0 = arr0.length;
    if(arr2) count2 = arr2.length;
    if(arr4) count4 = arr4.length;
    if(arr6) count6 = arr6.length;
    if(arr8) count8 = arr8.length;
    if(arr3) count3 = arr3.length - count8;
    if(arr5) count5 = arr5.length - count4;
    if(arr1) count1 = arr1.length - count0 - count2 - count4;
    if(arr7) count7 = arr7.length - count5;
    if(arr9) count9 = arr9.length - count5 - count6 - count8;
    return '0'.repeat(count0)+'1'.repeat(count1)+'2'.repeat(count2)+'3'.repeat(count3)+'4'.repeat(count4)+'5'.repeat(count5)+'6'.repeat(count6)+'7'.repeat(count7)+'8'.repeat(count8)+'9'.repeat(count9);
};

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
讯飞输入法皮肤制作工具(安卓版皮肤制作)可以帮你为讯飞输入法制作出个性化的皮肤,喜欢的朋友赶紧下载制作吧。 讯飞输入法皮肤制作工具使用教程 1、根据您所使用的系统版本,选择打开运行SkinTool-64.exe或者SkinTool-32.exe,精简版请打开SkinTool.jar,成功打开如下图所示,导入功能只支持导入使用本工具制作导出的皮肤: 2、新建皮肤:点击上图的新建按钮弹出模版选择对话框,选择你喜欢的模版颜色进行编辑制作,如下图所示: 3、紧接着上图,点击确定之后默认进入皮肤基本信息修改界面,如下图所示。将皮肤名称、作者、版本及描述修改为你自己的内容,新制作皮肤需要点一下[换一个]生成ID,如果下次再基于此皮肤修改,只需要增大版本号(最低8.01)即可,例如8.02。 4、修改整体键盘大背景:点击【背景】标签进入如下图所示界面,点击[选择背景图],弹出对话框到你需要的背景图片(规格:720x550)即可。也可以使用纯色填充,点击[选择背景色]。 5、气泡样式修改:将布局预览切换到[点划布局],长按带有小数字的按键就会弹出气泡,点击[气泡设置-气泡文字颜色]旁边的色块就可以设置气泡文字的颜色,通过选择气泡图片(规格:80x80,PNG格式)可以设置气泡背景样式。 重要说明:在[选择气泡图片]按钮右侧是对气泡切片进行拉伸区域的设置,[X开始]到[X结束]表示拉伸区域的开始点水平坐标及结束点水平坐标,Y开到Y结束表示拉伸区域的开始点垂直坐标及结束点垂直坐标,输入好数字之后需要按回车键生效。 如下图所示,蓝色区域会直接拉伸,其他区域会保持原样,以上设置方法同样适用于候选栏背景图片及按键背景图片: 6、候选栏修改:通过上一步背景及气泡的设置之后,点击【候选栏】标签进入到如下显示界面: 讯飞输入法皮肤制作工具截图
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值