摘要:前言的第一題重新排列日志文件你有一個(gè)日志數(shù)組。將日志重新排序,使得所有字母日志都排在數(shù)字日志之前。字母日志按字母順序排序,忽略標(biāo)識(shí)符,標(biāo)識(shí)符僅用于表示關(guān)系。
前言
Weekly Contest 110的第一題 重新排列日志文件:
解題思路你有一個(gè)日志數(shù)組 logs。每條日志都是以空格分隔的字串。
對(duì)于每條日志,其第一個(gè)字為字母數(shù)字標(biāo)識(shí)符。然后,要么:
標(biāo)識(shí)符后面的每個(gè)字將僅由小寫字母組成,或;
標(biāo)識(shí)符后面的每個(gè)字將僅由數(shù)字組成。
我們將這兩種日志分別稱為字母日志和數(shù)字日志。保證每個(gè)日志在其標(biāo)識(shí)符后面至少有一個(gè)字。
將日志重新排序,使得所有字母日志都排在數(shù)字日志之前。字母日志按字母順序排序,忽略標(biāo)識(shí)符,標(biāo)識(shí)符僅用于表示關(guān)系。數(shù)字日志應(yīng)該按原來的順序排列。
返回日志的最終順序
示例:
輸入:["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"]提示:
0 <= logs.length <= 100
3 <= logs[i].length <= 100
logs[i] 保證有一個(gè)標(biāo)識(shí)符,并且標(biāo)識(shí)符后面有一個(gè)字。
本題主要麻煩的地方是題目的描述有點(diǎn)難懂,其實(shí)是一道很簡(jiǎn)單的題目。
首先分析題目中對(duì)于日志、字母日志和數(shù)字日志的定義:
日志:指的是日志文件(本題中為字符串?dāng)?shù)組)中的一行記錄,記錄的內(nèi)容為用空格分隔的字符串(后續(xù)稱為單詞),需要注意第一個(gè)單詞是標(biāo)識(shí)符用于排序。即 標(biāo)識(shí)符 單詞1 [單詞2 ...] 。
字母日志:指的是日志內(nèi)容除了標(biāo)識(shí)符部分外的單詞都由字母組成
數(shù)字日志:指的是日志內(nèi)容除了標(biāo)識(shí)符部分外的單詞都由數(shù)字組成
然后分析題目意思,得出字符串?dāng)?shù)組的處理思路:
對(duì)日志進(jìn)行分組,分為字母日志和數(shù)字日志
字母日志重排序
字母日志和數(shù)字日志聚合日志數(shù)據(jù)
實(shí)現(xiàn)代碼/** * 937. 重新排列日志文件 * @param logs * @return */ public String[] reorderLogFiles(String[] logs) { ListletterLogs=new LinkedList<>(); List digitLogs=new LinkedList<>(); //日志分組 for(String log:logs){ char c=log.charAt(log.indexOf(" ")+1); if(c>=48 && c<=57){//是否包含數(shù)字 digitLogs.add(log); }else{ letterLogs.add(log); } } //字母日志排序 letterLogs.sort(new Comparator () { @Override public int compare(String o1, String o2) {//只比較日志內(nèi)容 String log1=o1.substring(o1.indexOf(" ")); String log2=o2.substring(o2.indexOf(" ")); return log1.compareTo(log2); } }); //聚合日志 letterLogs.addAll(digitLogs); return letterLogs.toArray(logs); }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/72119.html
摘要:題目鏈接題目分析給定一個(gè)數(shù)組,每一個(gè)元素是一條日志。剩余部分為全為小寫字母的字符串稱為字符日志或全為數(shù)字的字符串稱為數(shù)字日志。給定的數(shù)組中確定會(huì)至少有一個(gè)字母。遍歷完成后,對(duì)字符日志進(jìn)行排序。在其后拼接數(shù)字日志數(shù)組,并返回即可。 D54 937. Reorder Log Files 題目鏈接 937. Reorder Log Files 題目分析 給定一個(gè)數(shù)組,每一個(gè)元素是一條日志。 ...
Problem 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...
摘要:最后,我們用和適當(dāng)?shù)莫?dú)特后綴來標(biāo)注數(shù)據(jù)流。將數(shù)據(jù)流分離到兩個(gè)不同的目的地在這里,我們解析自動(dòng)定量日志,管理我們的緩沖區(qū),查詢和區(qū)塊大小。 也許你對(duì)Fluentd的統(tǒng)一日志記錄層已經(jīng)有所耳聞。可能你對(duì)日志是流不是文件這個(gè)概念也已經(jīng)很熟悉,所以現(xiàn)在就讓我們用這個(gè)方法來思考日志層。事實(shí)上,最后導(dǎo)致決定性的一點(diǎn)就是fluentd是如何被配置的。全部都是關(guān)于我們?nèi)绾翁幚韘tream的不同元素的:...
閱讀 683·2021-11-23 09:51
閱讀 3275·2019-08-30 15:54
閱讀 440·2019-08-30 15:52
閱讀 3108·2019-08-30 13:58
閱讀 2912·2019-08-30 13:53
閱讀 2684·2019-08-29 14:18
閱讀 2407·2019-08-27 10:54
閱讀 2364·2019-08-26 18:09