根据字符出现频率排序、从英文中重建数字----2022/4/25
根据字符出现频率排序、从英文中重建数字----2022/4/25
给定一个字符串 s ,根据字符出现的 频率 对其进行 降序排序 。一个字符出现的 频率 是它出现在字符串中的次数。
返回 已排序的字符串 。如果有多个答案,返回其中任何一个。
示例1:
输入: s = "tree"
输出: "eert"
解释: 'e'出现两次,'r'和't'都只出现一次。
因此'e'必须出现在'r'和't'之前。此外,"eetr"也是一个有效的答案。
示例2:
输入: s = “cccaaa”
输出: “cccaaa”
解释: 'c’和’a’都出现三次。此外,"aaaccc"也是有效的答案。
注意"cacaca"是不正确的,因为相同的字母必须放在一起。
示例3:
输入: s = “Aabb”
输出: “bbAa”
解释: 此外,"bbaA"也是一个有效的答案,但"Aabb"是不正确的。
注意’A’和’a’被认为是两种不同的字符。
提示:
1 <= s.length <= 5 * 105
s 由大小写英文字母和数字组成
题解1:
简化部分参考
class Solution:
def frequencySort(self, s: str) -> str:
utils_dict = {}
for sub_s in s:
if sub_s in utils_dict:
utils_dict[sub_s] += 1
else:
utils_dict[sub_s] = 1
# 简化
#for i in s:
#utils_dict[i] = utils_dict.get(i,0)+1
L = sorted(utils_dict.keys(), key=lambda x :utils_dict[x], reverse=True)
res = ''
for i in L:
res += i * utils_dict[i]
return res
题解2:
参考
class Solution:
def frequencySort(self, s: str) -> str:
li = []
for i, j in Counter(s).items():
li.append([i, j])
new_li = sorted(li, key=lambda x: -x[1])
return ''.join([i*j for i,j in new_li])
return ''.join([i*j for i, j in sorted([[i,j] for i, j in Counter(s).items()], key=lambda x:-x[1])])
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/sort-characters-by-frequency
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
从英文中重建数字----2022/4/25
给你一个字符串 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 保证是一个符合题目要求的字符串
题解:
参考题解
class Solution:
def originalDigits(self, s: str) -> str:
utils_dict = Counter(s)
# zero one two three four five six seven eight nine
c0 = utils_dict['z']
c2 = utils_dict['w']
c4 = utils_dict['u']
c6 = utils_dict['x']
c8 = utils_dict['g']
c3 = utils_dict['h']-c8
c5 = utils_dict['f']-c4
c7 = utils_dict['s']-c6
c1 = utils_dict['o']-c0-c2-c4
c9 = utils_dict['i']-c5-c6-c8
res_list = [c0,c1,c2,c3,c4,c5,c6,c7,c8,c9]
res = ''
for i,j in enumerate(res_list):
res += str(i)*j
return res
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/reconstruct-original-digits-from-english
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。