当前位置:网站首页>LeetCode简单题之重新排列日志文件
LeetCode简单题之重新排列日志文件
2022-04-23 07:02:00 【·星辰大海】
题目
给你一个日志数组 logs。每条日志都是以空格分隔的字串,其第一个字为字母与数字混合的 标识符 。
有两种不同类型的日志:
字母日志:除标识符之外,所有字均由小写字母组成
数字日志:除标识符之外,所有字均由数字组成
请按下述规则将日志重新排序:
所有 字母日志 都排在 数字日志 之前。
字母日志 在内容不同时,忽略标识符后,按内容字母顺序排序;在内容相同时,按标识符排序。
数字日志 应该保留原来的相对顺序。
返回日志的最终顺序。
示例 1:
输入:logs = [“dig1 8 1 5 1”,“let1 art can”,“dig2 3 6”,“let2 own kit dig”,“let3 art zero”]
输出:[“let1 art can”,“let3 art zero”,“let2 own kit dig”,“dig1 8 1 5 1”,“dig2 3 6”]
解释:
字母日志的内容都不同,所以顺序为 “art can”, “art zero”, “own kit dig” 。
数字日志保留原来的相对顺序 “dig1 8 1 5 1”, “dig2 3 6” 。
示例 2:
输入:logs = [“a1 9 2 3 1”,“g1 act car”,“zo4 4 7”,“ab1 off key dog”,“a8 act zoo”]
输出:[“g1 act car”,“a8 act zoo”,“ab1 off key dog”,“a1 9 2 3 1”,“zo4 4 7”]
提示:
1 <= logs.length <= 100
3 <= logs[i].length <= 100
logs[i] 中,字与字之间都用 单个 空格分隔
题目数据保证 logs[i] 都有一个标识符,并且在标识符之后至少存在一个字
来源:力扣(LeetCode)
解题思路
这个题需要根据条件重新写一下排序信息,每个元素中第一个空格后面是数字的话就断定这是一个数字日志,否则就是字母日志,所以我们只需要看单个元素第一个空格后的第一个字符即可。由于python自带的sort函数默认是稳定的排序,所以在排数字日志的时候直接赋值一样大的值就好,其余的规则可以使用元组分开第一和第二顺序。
class Solution:
def reorderLogFiles(self, logs: List[str]) -> List[str]:
def sort_rule(x):
index=x.index(' ')
if x[index+1].isdigit():
return 'z'*100,'z'*100
else:
return x[index+1:],x[0:index]
return sorted(logs,key=sort_rule)
版权声明
本文为[·星辰大海]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_18560985/article/details/124356390
边栏推荐
- MYSQL——第一章节(数据类型2)
- PHP high precision computing
- [untitled]
- LeetCoed18. Sum of four numbers
- Research on software security based on NLP (2)
- 一篇文章看懂变量提升(hoisting)
- js常用数组方法
- Talking about distributed storage from ES, mongodb, redis and rocketmq
- 浏览器中的 Kubernetes 和 IDE | 交互式学习平台Killercoda
- 1216_ MISRA_ C standard learning notes_ Rule requirements for control flow
猜你喜欢
简述存储器的分级策略
扎心了!一女子发朋友圈羡慕别人按时发工资被开除,连点赞的同事也一同被开除了...
[appium] encountered the problem of switching the H5 page embedded in the mobile phone during the test
yum源仓库本地搭建的两种方法
BUFFCTF文件中的秘密1
使用 Ingress 实现金丝雀发布
How does feign integrate hystrix
Draw a circle quickly in MATLAB (the one that can be drawn directly given the coordinates and radius of the center of the circle)
AAAI 2022招募讲者啦!!
WordPress爱导航主题 1.1.3 简约大气网站导航源码网址导航源码
随机推荐
Penetration test interview collection -- HVV---
nn.Module类的讲解
LeetCode15. 三数之和
Briefly describe the hierarchical strategy of memory
青苹果影视系统源码 影视聚合 影视导航 影视点播网站源码
User manual of Chinese version of solidity ide Remix
BUUCTF [极客大挑战 2019]EasySQL1
NIH降血脂指南《your guide to lowering your Cholesterol with TLC》笔记(持续更新中)
Asynchronous learning
以下程序实现从字符串str中删除第i个字符开始的连续n个字
数据库之Mysql——概述安装篇
LeetCoed18. Sum of four numbers
php生成短链接:将数字转成字母,将字母转成数字
yum源仓库本地搭建的两种方法
Cloud computing skills competition -- Part 2 of openstack private cloud environment
【无标题】
输入 “ net start mysql ”,出现 “ 发生系统错误 5。 拒绝访问 ” 。问题详解
利用Js实现一个千分位
Intranet penetration series: icmptunnel of Intranet tunnel (Master James Barlow's)
Concours de compétences en informatique en nuage - - première partie de l'environnement cloud privé openstack