用指令碼整理Leetcode題解

2021-09-11 13:25:45 字數 1850 閱讀 3918

可以看出結構很混亂,所以 acool 想做乙個索引放在 readme 裡面。像這樣:

按照題號排序,中間是題目名稱和題目的 leetcode 鏈結,最後是題解語言和鏈結。按照這樣的結構來手動一條一條整理,實在是太花時間了,所以 acool 寫了乙個索引生成 shell script 來整理。

指令碼的**如下:

#

! /bin/bash

ls | grep '^[0-9]'|sort -n|while read line

do    title=`echo $|cut -d . -f 2`

declare -l url=$

echo "|$|[$title](' '/'-'}/description/)|[c++](" >>readme.md

done

複製**

解釋一下,如第一張圖所示,所有題解檔案都是(題號.題名.md)的形式,所以第一行**按照題號對其進行排序,從小到大,將排序的結果按行取出。一行一行處理。 然後是乙個迴圈,每行(即每個題解檔案)先取中間的題名儲存在 title 變數裡,再將其所有字母小寫的內容儲存在 url 中,注意這裡declare -l varible=***意思是字串全部轉為小寫賦值給變數。 最後分別有三列,對應第二張圖中的三列:

第一列取題號,$表示從右向左擷取變數中最後乙個 string 後的字串,這裡便是取題號.題名.md中的題號,**如下:

$

複製**

第二列由題名得到 leetcode 中對應的題目描述的位址,例如 leetcode第一道題名為two sum,對應的 url 為 leetcode.com/problems/tw… ,即將題名中間空格換為 '-' 即可,**如下:

[$

title](' '/'-'}/description/)

複製**

[c++](

複製**

然後將這一行索引重定向到 readme.md 檔案裡面便完成了索引的生成。

結果和第二張圖一樣:

複製**傳入的引數為新題的題號,用迴圈乙個乙個處理,將新題加入排序中找到其順序,然後插入之前的索引即可。最後一行**:

sed -i ''$'i\'"$"'' readme.md

複製**

其中 sed 是流編輯器,按行處理,將結果插入索引中。

指令碼使用的方式如下,即圖中的newindex.sh

用指令碼整理檔案真的很方便,各位讀者也可以嘗試一下。

題解 整理藥名

醫生在書寫藥品名的時候經常不注意大小寫,格式比較混亂。現要求你寫乙個程式將醫生書寫混亂的藥品名整理成統一規範的格式,即藥品名的第乙個字元如果是字母要大寫,其他字母小寫。如將 aspirin aspirin 整理成 aspirin 第一行乙個數字 n,表示有 n 個藥品名要整理,n 不超過 100。接...

演算法題解整理

序號 型別解法1 解法2步驟 備註注意 1動態規劃 dp table的狀態轉移 確定 base case 變換目標 揹包問題,可拿出 第i個位置的值等於遍歷之前所有的dp值補上第i個位置到此位置的差值,取最大的值更新a i 子串行問題一般可用dp來解決 子串行的問題,一般用dp可以來解決 用乙個dp...

常用指令碼 常用指令碼整理

1 addloadevent 網頁載入完成後把多個自己編寫的函式繫結到window.onload事件中 把現有的window.onload事件處理函式的值存入便令oldonload。如果在這個處理函式上還沒有繫結任何函式,就像平時那樣把新函式新增給它。如果在這個處理函式上已經繫結了一些函式,就把新函...