ARTS打卡26 Python實現自動化報表

2021-10-23 16:55:04 字數 1780 閱讀 2840

algorithm做演算法題,review點評英文文章,tip總結技術技巧,share做技術分享。每週打卡一次,這就是arts打卡。

題目:

給你兩個陣列,arr1 和 arr2,arr2 中的元素各不相同,arr2 中的每個元素都出現在 arr1 中,對 arr1 中的元素進行排序,使 arr1 中項的相對順序和 arr2 中的相對順序相同。未在 arr2 **現過的元素需要按照公升序放在 arr1 的末尾。

示例:

輸入:arr1 = [2,3,1,3,2,4,6,7,9,2,19], arr2 = [2,1,4,3,9,6]

輸出:[2,2,2,1,4,3,3,9,6,7,19]

解題思路:

題目中對arr1的排序是安裝arr2順序進行的,可以用hash表對arr1中元素計數,按照arr2中元素順序和計數結果生成新列表,再加上不在arr2中元素排序的新列表,得到最終排序列表。新增加的hash表空間與arr1大小有關,空間複雜度o(n),n為arr1元素個數。時間複雜度分兩個部分,一是計算雜湊表o(n),二是對不在arr2中的元素進行排序o(mlog(m)),m為不在arr2中元素個數。最終時間複雜度為o(n + mlog(m))。

解題**:

class

solution

:def

relativesortarray

(self, arr1: list[

int]

, arr2: list[

int])-

> list[

int]

: in_arr2 =

not_in_arr2 =

hash =

for num1 in arr1:

hash[num1]

= hash.get(num1,0)

+1arr1 =

set(arr1)

for num1 in arr1:

if num1 not

in arr2:

not_in_arr2 +=

[num1]

* hash[num1]

not_in_arr2.sort(

)for num2 in arr2:

in_arr2 +=

[num2]

* hash[num2]

return in_arr2 + not_in_arr2

文章《how to learn any programming language》介紹了學習程式設計的方法,總結一下就是定目標、列計畫、多實踐。道理講起來都很樸素,要實際一步一步堅持去做到的人還真不多。只看一門程式語言的語法很容易,但寫出優秀的**還要長久的練習,編**的很像手藝人打磨技藝。

文章《「i would rather feel machine judging me, than people judging me」 - jeremy morgan during ama》是一篇採訪,其中有一句啟發很大:

"…remember, you』re not being paid to write code, you』re being paid to solve problems. "

記住,你不是因為寫**而拿工資,而是因為解決問題而獲得收入。

使用python庫docx可以實現word文件自動生成、編輯、處理,進而完成自動生成報表功能。python-docx處理word文件安裝和入門參考。

python實現自動化列印

這次真的是出於實際需要,想要用python寫個小指令碼 老闆發給我乙份包含幾百個人資訊的pdf檔案,如果乙份乙份開啟檔案,點列印我感覺要看到眼花。發現呼叫電腦程式需要用到win32這個庫,而且初略的看了下就發現此庫非常nb,怎麼說,這個庫可以同計算機進行互動,比如彈出提示框,或者呼叫系統內建一些程式...

Python實現網頁自動化朗讀

是不是有的時候懶得自己看新聞?那麼不妨試試用 python 來朗讀給你聽吧。網頁轉換成語音,步驟無外乎 網頁正文識別,獲取到正文的文字內容 文字轉語音,通過介面將文字轉換成語音檔案 語音檔案的發聲,即將語音檔案讀出 01 網頁正文識別 之所以用 python,就是因為 python 有著豐富的庫,網...

python實現介面自動化(1)

http簡介 http協議是什麼呢,是乙個基於 請求 與 響應 模式的,無狀態,應用層的協議 url詳解 http https 為兩種協議型別,第一種為不加密的,第二種加密的 www.baidu.com 稱為主機位址或者網域名稱 192.168.1.1 8080 位址加埠號 localhost808...