leetcode_423. Reconstruct Original Digits from English ASCII码转换成字符,无序的英文字符对应的数字
2016-11-23 15:57
483 查看
题目:
Given a non-empty string containing an out-of-order English representation of digits
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:
Example 2:
题意:
给定字符串s,字符串内容是数字0-9的英文表示(one, two, ……, nine)的各字符的无序排列。找出字符串s包含的所有数字。假设s有意义,即s肯定是若干数字的英文表示的字符的组合。
代码:
class Solution(object):
def originalDigits(self, s):
"""
:type s: str
:rtype: str
"""
n = len(s)
nums = [0]*10 #初始化每个数字出现次数为0
res = '' #记录返回的结果
dic = {} #每个字符出现次数初始化为0
for x in range(ord('a'),ord('z')+1) :
dic[chr(x)] = 0
for k in s : #统计s中各字符出现次数
dic[k] += 1
nums[0] = dic['z'] #参考网上大神已经统计好的结果
nums[2] = dic['w']
nums[4] = dic['u']
nums[6] = dic['x']
nums[8] = dic['g']
nums[5] = dic['f']-nums[4]
nums[3] = dic['h']-nums[8]
nums[7] = dic['s']-nums[6]
nums[1] = dic['o']-nums[0]-nums[2]-nums[4]
nums[9] = dic['i']-nums[5]-nums[6]-nums[8]
for i in range(10) :
if nums[i] > 0 :
res += str(i)*nums[i] #用数字乘以数字出现的次数
return res
笔记:
表示刚开始看题目,始终没看懂是什么意思,可能英语太菜了。
参考了http://blog.csdn.net/camellhf/article/details/52922763的思路,才明白题目的意思。
思路大概是先把通过字母能唯一确定的数字找出来,如果一个字符对应多个数字,就用这个字符出现次数,减去之前已确定的数字。
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"
题意:
给定字符串s,字符串内容是数字0-9的英文表示(one, two, ……, nine)的各字符的无序排列。找出字符串s包含的所有数字。假设s有意义,即s肯定是若干数字的英文表示的字符的组合。
代码:
class Solution(object):
def originalDigits(self, s):
"""
:type s: str
:rtype: str
"""
n = len(s)
nums = [0]*10 #初始化每个数字出现次数为0
res = '' #记录返回的结果
dic = {} #每个字符出现次数初始化为0
for x in range(ord('a'),ord('z')+1) :
dic[chr(x)] = 0
for k in s : #统计s中各字符出现次数
dic[k] += 1
nums[0] = dic['z'] #参考网上大神已经统计好的结果
nums[2] = dic['w']
nums[4] = dic['u']
nums[6] = dic['x']
nums[8] = dic['g']
nums[5] = dic['f']-nums[4]
nums[3] = dic['h']-nums[8]
nums[7] = dic['s']-nums[6]
nums[1] = dic['o']-nums[0]-nums[2]-nums[4]
nums[9] = dic['i']-nums[5]-nums[6]-nums[8]
for i in range(10) :
if nums[i] > 0 :
res += str(i)*nums[i] #用数字乘以数字出现的次数
return res
笔记:
表示刚开始看题目,始终没看懂是什么意思,可能英语太菜了。
参考了http://blog.csdn.net/camellhf/article/details/52922763的思路,才明白题目的意思。
思路大概是先把通过字母能唯一确定的数字找出来,如果一个字符对应多个数字,就用这个字符出现次数,减去之前已确定的数字。
相关文章推荐
- 二进制字符串和十六进制字符串转换为对应ASCII码和字符中不同进制间的转换
- 字符转换成其对应的数字
- C语言unsigned char与char之间的转换及英文字符ASCII码和汉字内码输出
- 获取中英文字符串的第一个中文或者英文字符对应的十进制数字
- leetcode 273. Integer to English Words 阿拉伯数字转换为英文表示
- Java中将一个字符转换成对应的Ascii码的办法
- LeetCode Excel Sheet Column Title(表格列数数字到英文转换)
- Python Cookbook 第二版 汉化版 [Recipe 1.2] 字符与其对应的数字编码之间的转换
- acmore|acmore.cc1011将磅转换为千克1012财务应用程序:计算消费1013求一个整数各位数的和1014求出年数1015求ASCII码对应的字符
- leetcode-171. Excel Sheet Column Number 26进制转换为10进制,获取字符的 ASCII码
- 已知:yi er san si wu liu qi ba jiu 分别对应 123456789,对一段只含 有这几种字符的字符串进行转换,转换成相应的数字
- 数字如何转换成ASCII码字符――谭浩强C课后题4.9
- C#字符与数字互相转换,字母转换成ASCII码,ASCII码转换字符
- Python Cookbook 第二版 汉化版 [Recipe 1.2] 字符与其对应的数字编码之间的转换
- LeetCode 17. Letter Combinations of a Phone Number--输入数字,每个数字对应手机键盘的字符,输出组合的字符串
- 中英文字符串,中文字符和英文字符转为unicode的16进制并且转为对应10进制数字
- 将数字转换为对应的字符 c++
- LeetCodet题解--17. Letter Combinations of a Phone Number(所有数字键盘组合所对应的所有字符集合)
- 已知:yi er san si wu liu qi ba jiu 分别对应123456789,对一段只含有这几种字符的字符串进行转 换,转换成相应的数字
- 英文字符转化成ASCII码对应的字符串