Walle Blog

Welcome to my blog!

前情提要

這篇文章是資料結構系列的第一篇,主要聚焦於 Stack 的基本概念、應用範圍以及其實現方式。透過深入介紹 Stack 的運作原理、應用場景以及程式實作,本篇內容適合初學者快速掌握 Stack 的核心知識,也為後續進階的資料結構學習奠定基礎。

文章中包含了 Stack 的定義與特性、應用範疇(如括號匹配、DFS、算術表達式轉換等)、以及用陣列與鏈結串列實作 Stack 的具體範例程式碼,旨在讓讀者對 Stack 的理論與實作有全面的認識。

閱讀全文 »

前情提要

我最近有遇到一個問題就是我 Windows 10 要使用 share devices 然後給外包廠商上傳檔案在 Guacamole 那麼我知道 Guacamole 有 SFTP 的服務可以串接讓外包廠商上傳檔案,但是中間一直連線失敗有點弄到快爆氣哈哈哈...,但是後面發現滿蠢的哈哈哈哈,廢話不多說開始吧。

閱讀全文 »

前情提要

這篇文章是資料結構系列的第二篇,主要討論 Binary Tree(二元樹) 的基礎概念與相關理論。今天整理了 Binary Tree 的定義、基本性質、常見類型,以及一些重要的數學性質與推導,像是節點數、樹的高度等。此外,也介紹了二元樹的實現方式(陣列與鏈結串列)和走訪方法,並分享了一些經典範例題的解法,希望幫助讀者快速掌握二元樹的核心知識。

閱讀全文 »

Tree 討論

最近因為在補習班上資料結構,所以想說寫一下 blog 有參考幾本 bible 分別有 clrshorowitz 這兩本書來撰寫這篇 blog,內容可能跟 horowitz 的內容比較接近,因為 clrs 這本還是 algo 說的比較多哈哈哈。

閱讀全文 »

前言

在集合論中,直接像(Direct Image)是函數在兩個集合之間映射時所產生的一個重要概念。它描述了如何從一個集合 \(A\) 的子集經過函數映射到另一個集合 \(B\) 的子集中。本篇文章將探討直接像的定義與性質,並說明其在數學中的應用。

閱讀全文 »

前情提要

這篇文章記錄了在 UVA Online Judge 刷題的過程,挑戰了兩個不同類型的題目,分別是 227 - Puzzle 與 1586 - Molar mass。

[227 - Puzzle] 這是一道模擬操作的題目,目標是在 5x5 的字串陣列中移動空白格,根據指令 (A 上移、B 下移、L 左移、R 右移) 更新陣列的配置。挑戰在於處理輸入格式和確保操作合法性 (不超出邊界)。 本題的重點在於模擬過程是否正確,並輸出最終的字串陣列,若指令導致非法操作,則需輸出錯誤訊息。

[1586 - Molar mass] 這是一道字串解析的題目,要求計算化學式的分子量。需依據化學元素的符號及其後的數字 (若無則預設為 1) 計算權重,最後輸出結果。 難點在於精確解析字串並將權重正確累加,對效能的處理也很重要。

閱讀全文 »

前情提要

這篇文章是關於 Virtual Judge 刷題的紀錄,主要記錄了解題的過程和心得。在 08/21 的刷題中,挑選了 P2249 這道題目,並使用了經典的 二分搜尋法 (Binary Search) 來解題。文章會分享解題的邏輯、程式碼,以及一些關於該題的細節,幫助讀者了解如何高效地透過二分搜尋法解決問題。

題目要求我們在一個排序的數列中,尋找某些目標數字的首次出現位置。為了達到高效搜尋,程式利用二分搜尋法縮小範圍,並在找到匹配的數字時,記錄它的索引位置。接下來將分享這段程式碼的完整實現與運作流程!

閱讀全文 »

前情提要

在部署 Django 專案時,雖然可以使用 python manage.py runserver 指令來啟動伺服器,但這樣的做法在處理靜態檔案時效能不佳,尤其是在面對大量訪問時,效能瓶頸會更加明顯。實務上,我們常使用反向代理(reverse proxy)來提升效能,並避免直接使用 Django 的開發伺服器。Nginx 作為反向代理,不僅可以處理靜態檔案,還能分流請求,提升應用的安全性與效能。

此外,與 .NET Core 可以透過編譯並打包成單一可部署檔案的方式不同,在 Python 環境下,我們需要借助像 uWSGI 這類的工具,作為 Nginx 與 Django 之間的橋樑,以實現高效的應用程式部署。

閱讀全文 »

前情提要

這篇文章記錄了我今天在 UVA Online Judge 的刷題過程,挑戰了兩道題目,分別是與邏輯判斷相關的題目和簡單的輸入輸出處理題。透過這些題目,練習了模擬操作與字串處理的技巧,以下是解題紀錄與程式碼實現。

解題程式

  • 題目連結 340

  • 這題題目的意思就是我要到 0 就代表了要結束輸入,也就是程式要結束,然後如果 guess[0] 因為他有說範圍 1~9 所以 0 就代表這筆測試資料結束,那麼我們就會知道輸入怎麼做處理,現在剩下邏輯的部份,那我的想法就是分別計算 位置和數字都完全等於的數目,在用矩陣去紀錄哪些已經數字已經被記錄了,如果都沒有被記錄過,guess[i] == key[j] 哪麼我就把它記錄下來處理後就是答案了。

閱讀全文 »

前情提要

  • 因為有個困擾就是,我常常因為要切不同框架撰寫前後端,所以有時候用的 vscode extension 都會不同,這個問提困擾我很舊,因為每次打開 vscode 就很久,直到有天我發現可以使用 vscode profile 去切割不同的開發環境所需要的 extension,從此我的 vscode 開啟速比以前為管理前快多了...。

  • 我的習慣是我 Default profile 會用來作為其他 profile 的 base 所以我會裝一些常用的工具在 Default profile 這樣就可以複製到新的 profile 上然後繼續裝上自己需要使用的 extension。

閱讀全文 »
0%