LeetCode简单题之重新排列日志文件

news/2024/11/24 6:54:31/

题目

给你一个日志数组 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'*100else:return x[index+1:],x[0:index]return sorted(logs,key=sort_rule)

在这里插入图片描述


http://www.ppmy.cn/news/605404.html

相关文章

深度学习优化函数详解(5)-- Nesterov accelerated gradient (NAG) 优化算法

深度学习优化函数详解系列目录 深度学习优化函数详解&#xff08;0&#xff09;– 线性回归问题 深度学习优化函数详解&#xff08;1&#xff09;– Gradient Descent 梯度下降法 深度学习优化函数详解&#xff08;2&#xff09;– SGD 随机梯度下降 深度学习优化函数详解&…

LeetCode简单题之统计字符串中的元音子字符串

题目 子字符串 是字符串中的一个连续&#xff08;非空&#xff09;的字符序列。 元音子字符串 是 仅 由元音&#xff08;‘a’、‘e’、‘i’、‘o’ 和 ‘u’&#xff09;组成的一个子字符串&#xff0c;且必须包含 全部五种 元音。 给你一个字符串 word &#xff0c;统计并返…

深度学习优化方法-AdaGrad 梯度下降

梯度下降算法、随机梯度下降算法&#xff08;SGD&#xff09;、小批量梯度下降算法&#xff08;mini-batch SGD&#xff09;、动量法&#xff08;momentum&#xff09;、Nesterov动量法有一个共同的特点是&#xff1a;对于每一个参数都用相同的学习率进行更新。但是在实际应用中…

LeetCode简单题之三除数

题目 给你一个整数 n 。如果 n 恰好有三个正除数 &#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 如果存在整数 k &#xff0c;满足 n k * m &#xff0c;那么整数 m 就是 n 的一个 除数 。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;fal…

决策树--信息增益,信息增益比,Geni指数的理解

20210528 https://blog.csdn.net/qq_39408570/article/details/89764177 信息增益和基尼指数不是等价的 大多数时候它们的区别很小 信息增益对较混乱的集合有很好的表现力&#xff0c;但是基尼指数有所欠缺。另一方面&#xff0c;这也说明较纯的集合&#xff0c;基尼指数可能会…

LeetCode简单题之哪种连续子字符串更长

题目 给你一个二进制字符串 s 。如果字符串中由 1 组成的 最长 连续子字符串 严格长于 由 0 组成的 最长 连续子字符串&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 例如&#xff0c;s “110100010” 中&#xff0c;由 1 组成的最长连续子字符串的长度是…

LeetCode简单题之按奇偶性交换后的最大数字

题目 给你一个正整数 num 。你可以交换 num 中 奇偶性 相同的任意两位数字&#xff08;即&#xff0c;都是奇数或者偶数&#xff09;。 返回交换 任意 次之后 num 的 最大 可能值。 示例 1&#xff1a; 输入&#xff1a;num 1234 输出&#xff1a;3412 解释&#xff1a;交换数…