【leetcode】937. Reorder Log Files
題目如下:
You have an array of?logs.? Each log is a space delimited string of words.
For each log, the first word in each log is an alphanumeric?identifier.? Then, either:
- Each word after the identifier will consist only of lowercase letters, or;
- Each word after the identifier will consist only of digits.
We will call these two varieties of logs?letter-logs?and?digit-logs.? It is guaranteed that each log has at least one word after its identifier.
Reorder the logs so that all of the letter-logs come before any digit-log.? The letter-logs are ordered lexicographically ignoring identifier, with the identifier used in case of ties.? The digit-logs should be put in their original order.
Return the final order of the logs.
?
Example 1:
Input: ["a1 9 2 3 1","g1 act car","zo4 4 7","ab1 off key dog","a8 act zoo"] Output: ["g1 act car","a8 act zoo","ab1 off key dog","a1 9 2 3 1","zo4 4 7"]Note:
解題思路:題目實在太簡單了,我的方法是創建兩個數組letter和digit,接下來遍歷logs,如果logs[i]的最后一個字符是數字,存入digit;否則,存入letter。遍歷完成后,對letter進行排序,最后返回letter + digit。
隨便說說:最近真的是太忙了,基本沒有時間做題。
代碼如下:
class Solution(object):def reorderLogFiles(self, logs):""":type logs: List[str]:rtype: List[str]"""letter = []digit = []for i in logs:if i[-1].isdigit():digit.append(i)else:letter.append(i)def cmpf(v1,v2):lv1 = v1.split(' ')lv2 = v2.split(' ')for i in range(1,min(len(lv1),len(lv2))):if lv1[i] == lv2[i]:continuereturn cmp(lv1[i],lv2[i])return len(lv1) - len(lv2)letter.sort(cmp = cmpf)return letter + digit?
轉載于:https://www.cnblogs.com/seyjs/p/9958017.html
總結
以上是生活随笔為你收集整理的【leetcode】937. Reorder Log Files的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sed 和 awk 的一些用法
- 下一篇: Flutter 下拉刷新花式玩法