<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Collie 的部落格</title><link>https://blog.collie.tw/posts/</link><description>Recent content in Posts on Collie 的部落格</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>© 2026</copyright><lastBuildDate>Tue, 22 Nov 2022 16:42:51 +0800</lastBuildDate><atom:link href="https://blog.collie.tw/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>224. Basic Calculator</title><link>https://blog.collie.tw/posts/leetcode/224/</link><pubDate>Tue, 22 Nov 2022 16:42:51 +0800</pubDate><guid>https://blog.collie.tw/posts/leetcode/224/</guid><description>&lt;h2 class="relative group"&gt;&lt;a href="https://leetcode.com/problems/basic-calculator/" target="_blank" rel="noreferrer"&gt;原始題目&lt;/a&gt;&#10; &lt;div id="原始題目" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8e%9f%e5%a7%8b%e9%a1%8c%e7%9b%ae" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;給定字串包含 &lt;code&gt;{ '+', '-', ' ', '(', ')'}&lt;/code&gt; 以及數字，求出算式答案。&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;值得紀錄之處&#10; &lt;div id="值得紀錄之處" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%80%bc%e5%be%97%e7%b4%80%e9%8c%84%e4%b9%8b%e8%99%95" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&#10;&lt;h3 class="relative group"&gt;處理太多條件分支&#10; &lt;div id="處理太多條件分支" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e8%99%95%e7%90%86%e5%a4%aa%e5%a4%9a%e6%a2%9d%e4%bb%b6%e5%88%86%e6%94%af" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;我覺得這題最麻煩的坑在於符號太多種了。如果用 &lt;code&gt;if&lt;/code&gt; 來寫的話，會有太多條件分支（ branch condition ），所以我一直很想把某些 branch 合在一起。比如說：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;&lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt; 後面跟著 &lt;code&gt;(&lt;/code&gt;&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt; 後面跟著數字&lt;/li&gt;&#10;&lt;li&gt;&lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt; 後面是 &lt;code&gt; &lt;/code&gt;, 而再之後還可以混合前兩項組合出更多種變化。&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;這樣乘起來情況非常多，也很難維護。如果可以忽略掉 &lt;code&gt;+&lt;/code&gt;, &lt;code&gt;-&lt;/code&gt;, 只在遇到數字和 &lt;code&gt;(&lt;/code&gt; 的時候，再往回檢查符號，就可以減少需要列舉的情況數量了。&lt;/p&gt;</description></item><item><title>2095. Delete the Middle Node of a Linked List</title><link>https://blog.collie.tw/posts/leetcode/2095/</link><pubDate>Sat, 22 Oct 2022 00:23:42 +0800</pubDate><guid>https://blog.collie.tw/posts/leetcode/2095/</guid><description>&lt;p&gt;拜讀了&lt;a href="https://hackmd.io/@sysprog/c-linked-list#%E5%BE%9E-Linux-%E6%A0%B8%E5%BF%83%E7%9A%84%E8%97%9D%E8%A1%93%E8%AB%87%E8%B5%B7" target="_blank" rel="noreferrer"&gt;你所不知道的 C 語言： linked list 和非連續記憶體&lt;/a&gt;一文中所提到的 &amp;ldquo;&lt;strong&gt;good taste&lt;/strong&gt;&amp;rdquo; 段落 , 覺得非常有趣而躍躍欲試，所以找這題來練練手。（後來發現底下的例子也有寫到這題😅，而且效率又比我想到的解更好，甚至還有一些記憶體管理的細節，學到了！）&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;&lt;a href="https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/" target="_blank" rel="noreferrer"&gt;原始題目&lt;/a&gt;&#10; &lt;div id="原始題目" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%8e%9f%e5%a7%8b%e9%a1%8c%e7%9b%ae" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;&#10;&#10;這題是給定一個不固定長度 \(n\) 的鏈結串列，然後要求刪除最中間的那個節點（ node ） （精確來說是第 \(\lfloor \frac{n}{2} \rfloor\) 個節點）&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;值得紀錄之處&#10; &lt;div id="值得紀錄之處" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%80%bc%e5%be%97%e7%b4%80%e9%8c%84%e4%b9%8b%e8%99%95" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;這裡所謂的 good taste 是指利用一些技巧，去減少「特例」發生的情形，進而使程式碼更加乾脆俐落。舉例來說，原本在這題常見的解法有兩種：&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;先用迴圈把整個鏈結串列遍歷，計算有幾個節點。算完再跑一次 &lt;code&gt;for&lt;/code&gt; 迴圈把最中間的節點刪除。&lt;/li&gt;&#10;&lt;li&gt;利用 &lt;code&gt;fast&lt;/code&gt; 和 &lt;code&gt;slow&lt;/code&gt; 兩指標，丟進迴圈裡面， &lt;code&gt;fast&lt;/code&gt; 每回合前進兩格， &lt;code&gt;slow&lt;/code&gt; 每回合前進一格，這樣只要一次迴圈就可以抓到要刪除的節點並且刪除。&lt;br&gt;&#10;&#10; &#10;&#10;&#10;&#10;&lt;div&#10; &#10; class="flex px-4 py-3 rounded-md shadow bg-primary-100 dark:bg-primary-900"&#10; &#10; &gt;&#10; &lt;span&#10; &#10; class="text-primary-400 pe-3 flex items-center"&#10; &#10; &gt;&#10; &lt;span class="relative block icon"&gt;&lt;svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"&gt;&lt;path fill="currentColor" d="M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z"/&gt;&lt;/svg&gt;&#10;&lt;/span&gt;&#10; &lt;/span&gt;&#10;&#10; &lt;span&#10; &#10; class="dark:text-neutral-300"&#10; &#10; &gt;兩者的時間複雜度都是 \( \log (n)\), 但是後者的程式碼量會因為少一個迴圈而比較少，因此我以後者為比較標準。&lt;/span&gt;&#10;&lt;/div&gt;&#10;&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&#10;&lt;h3 class="relative group"&gt;非 indirect pointer 的解&#10; &lt;div id="非-indirect-pointer-的解" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e9%9d%9e-indirect-pointer-%e7%9a%84%e8%a7%a3" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;此程式碼取自 leetcode 論壇的某位大大寫的&lt;a href="https://leetcode.com/problems/delete-the-middle-node-of-a-linked-list/solutions/2698219/delete-the-middle-node-of-a-linked-list/" target="_blank" rel="noreferrer"&gt;詳解文章&lt;/a&gt;微調而得&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-cpp" data-lang="cpp"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;class&lt;/span&gt; &lt;span style="color:#a6e22e"&gt;Solution&lt;/span&gt; {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;public&lt;/span&gt;&lt;span style="color:#f92672"&gt;:&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;ListNode&lt;span style="color:#f92672"&gt;*&lt;/span&gt; deleteMiddle(ListNode&lt;span style="color:#f92672"&gt;*&lt;/span&gt; head) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; (head &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;==&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nullptr&lt;/span&gt;)&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&#9;&lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nullptr&lt;/span&gt;;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;ListNode &lt;span style="color:#f92672"&gt;*&lt;/span&gt;slow &lt;span style="color:#f92672"&gt;=&lt;/span&gt; head, &lt;span style="color:#f92672"&gt;*&lt;/span&gt;fast &lt;span style="color:#f92672"&gt;=&lt;/span&gt; head &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&lt;span style="color:#66d9ef"&gt;while&lt;/span&gt; (fast &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nullptr&lt;/span&gt; &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; fast &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;!=&lt;/span&gt; &lt;span style="color:#66d9ef"&gt;nullptr&lt;/span&gt;) {&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&#9;slow &lt;span style="color:#f92672"&gt;=&lt;/span&gt; slow &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&#9;fast &lt;span style="color:#f92672"&gt;=&lt;/span&gt; fast &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;slow &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;=&lt;/span&gt; slow &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next &lt;span style="color:#f92672"&gt;-&amp;gt;&lt;/span&gt; next;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;&#9;&lt;span style="color:#66d9ef"&gt;return&lt;/span&gt; head;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&#9;}&#10;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;};&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#10;&lt;p&gt;可以注意到，上面的解法 (line 4) 會有一個特例 (edge case), 如果開頭是 &lt;code&gt;nullptr&lt;/code&gt;, 那就如何如何&amp;hellip;&amp;hellip;。有時候特例一多，可能會寫了整面的 &lt;code&gt;if-else&lt;/code&gt;, 看了就痛苦😵‍💫。如果有個魔法可以使這個特例更減少，那程式碼就可以更精簡，這也是我這次的練習目標。&lt;/p&gt;</description></item><item><title>blog 101</title><link>https://blog.collie.tw/posts/blog101/</link><pubDate>Sat, 08 Oct 2022 00:00:00 +0000</pubDate><guid>https://blog.collie.tw/posts/blog101/</guid><description>&lt;h2 class="relative group"&gt;內容預告&#10; &lt;div id="內容預告" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%a7%e5%ae%b9%e9%a0%90%e5%91%8a" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;這篇預計會介紹我怎麼從前端白紙，用了哪些工具、如何設定、然後成功弄出一個可以正常瀏覽的部落格～&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;內容待補&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>考駕照奇遇記-1</title><link>https://blog.collie.tw/posts/driving-lessons/1/</link><pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.collie.tw/posts/driving-lessons/1/</guid><description>&lt;ul&gt;&#10;&lt;li&gt;&lt;strong&gt;這是我在大四下考駕照的紀錄，僅以此獻給我偉大的駕訓班 裏鍵張 教練。&lt;/strong&gt; （這是假名，如有雷同純屬巧合）&lt;/li&gt;&#10;&lt;li&gt;寫這個不是為了要罵他或報復他，只是想記錄我經歷了多荒謬的事情才拿到這張卡。得來不易啊！&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr&gt;&#10;&lt;p&gt;我是去一間在鳳山附近，叫做新永的駕訓班。因為湊團報，所以也沒有看評價，（ google map 上面的評價有多精彩晚點再說，那又是另一個故事）就跟同學找一找直接無腦衝。想不到，精彩的地獄生活就這樣開始&amp;hellip;&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;「我很重視基本功」&#10; &lt;div id="我很重視基本功" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e6%88%91%e5%be%88%e9%87%8d%e8%a6%96%e5%9f%ba%e6%9c%ac%e5%8a%9f" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;第一天我比約定的時間（06:40 am）還要早了 10 幾分鐘到，我對他印象不錯。他比我早就到練習場了。他每次都非常早到練習場，之前同學也說要早點到，這樣就可以多開幾分鐘的車。&lt;/p&gt;&#10;&lt;p&gt;「我很重視基本功，所以一開始你就先練習轉方向盤。」&lt;/p&gt;&#10;&lt;p&gt;我那天真的就只有聽他長篇大論，和坐在一台沒辦法動的練習車上面轉方向盤。&lt;/p&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;後來聽說好像是因為那天駕訓班沒有車可以讓我開，我不太確定。&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;p&gt;他覺得轉方向盤非常的重要，如果沒有左手跟右手分別放在九點跟三點鐘的位置，那就會很嚴重。於是我的第一天就真的只有練轉方向盤，直到下課前 10 分鐘就叫我離開教具車，去駕訓班的櫃檯電腦練習筆試題目。接下來的每次駕訓班課程也都會像這樣被他偷 10 分鐘以上。第一天就在這種疑惑中結束。結束之後去吃早餐跟同學交換心得，其他人在練習前進後退，我只有轉方向盤的心得可以討論，真是謝囉ㄏㄏ&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;「你覺得原因是什麼」&#10; &lt;div id="你覺得原因是什麼" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%a0%e8%a6%ba%e5%be%97%e5%8e%9f%e5%9b%a0%e6%98%af%e4%bb%80%e9%ba%bc" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;第二節課開始，我還是提早 10 幾分鐘到場。我想說昨天血虧，連油門都沒有摸到，今天要給他開回來。教練也很不負我望，教我念一次各種檢查的口訣，認得車子編號（駕訓場內每台車有個比車牌還大的編號牌，方便從側面辨識。）之後就上車。&lt;/p&gt;&#10;&lt;p&gt;可是我坐後座&amp;hellip;&lt;/p&gt;&#10;&#10;&lt;h3 class="relative group"&gt;碎碎念又要開始了&#10; &lt;div id="碎碎念又要開始了" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%a2%8e%e7%a2%8e%e5%bf%b5%e5%8f%88%e8%a6%81%e9%96%8b%e5%a7%8b%e4%ba%86" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h3&gt;&#10;&lt;p&gt;「你看，看仔細，我現在是不是把方向盤放開讓他回到原位了？」&lt;/p&gt;&#10;&lt;blockquote&gt;&lt;p&gt;是&lt;/p&gt;&#10;&lt;/blockquote&gt;&lt;p&gt;「仔細看喔」 （接著就緩慢地往前開一段，車子偏掉了）&lt;br&gt;&#10;「你看車子是不是歪掉了？」&lt;/p&gt;</description></item><item><title>考駕照奇遇記-2 (完)</title><link>https://blog.collie.tw/posts/driving-lessons/2/</link><pubDate>Wed, 06 Apr 2022 00:00:00 +0000</pubDate><guid>https://blog.collie.tw/posts/driving-lessons/2/</guid><description>&lt;h2 class="relative group"&gt;全場滑手機&#10; &lt;div id="全場滑手機" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%85%a8%e5%a0%b4%e6%bb%91%e6%89%8b%e6%a9%9f" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;滑手機也是他的個人特色。我覺得應該可以這麼說，「在整個駕訓班課程內，他的手機跟他的嘴巴至少有一個東西會打開。當然，兩個都打開的情形也是不在少數。」當他講完前進後退之後，我們兩個剛換完座位就看到他開始滑手機。有時候他會盯著螢幕突然冒出一句：「油門/煞車不要踩那麼大力！」或者是「煞車不要踩那麼快！」等等警告，會不會其實他滑 line 只是偽裝，其實他的目的是在偷偷觀察我🤨？&lt;/p&gt;&#10;&lt;p&gt;&lt;del&gt;後來他在群組傳的各種通知訊息文法狗屁不通、句讀亂用。我只能從分開的詞彙推敲文意，這也更使我相信上述的推測。&lt;/del&gt;&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;家人怎麼教你騎腳踏車&#10; &lt;div id="家人怎麼教你騎腳踏車" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e5%ae%b6%e4%ba%ba%e6%80%8e%e9%ba%bc%e6%95%99%e4%bd%a0%e9%a8%8e%e8%85%b3%e8%b8%8f%e8%bb%8a" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;我忘記他是為了教什麼才會舉這個問題當作例子問我們，但我印象中這不是個精闢的比喻，只是個可有可無的例子。我本來覺得這個問題也沒什麼荒謬的點，只是課堂加入一些無謂的問答會使練習時間縮短，因此不喜歡他迂迴曲折的講解。不過這則 &lt;a href="https://goo.gl/maps/ZGY12va56FXevR3CA" target="_blank" rel="noreferrer"&gt;google map 評論&lt;/a&gt;使我笑出來，所以還是把它記錄在這篇文。&lt;br&gt;&#10;&lt;figure&gt;&lt;img&#10; class="my-0 rounded-md"&#10; loading="lazy"&#10; decoding="async"&#10; fetchpriority="auto"&#10; alt=""&#10; width="364"&#10; height="258"&#10; src="https://blog.collie.tw/posts/driving-lessons/2/1.png"&#10; srcset="https://blog.collie.tw/posts/driving-lessons/2/1.png 800w, https://blog.collie.tw/posts/driving-lessons/2/1.png 1280w"&#10; sizes="(min-width: 768px) 50vw, 65vw"&#10; data-zoom-src="https://blog.collie.tw/posts/driving-lessons/2/1.png"&gt;&lt;/figure&gt;&#10;&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;物極必反相對論&#10; &lt;div id="物極必反相對論" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e7%89%a9%e6%a5%b5%e5%bf%85%e5%8f%8d%e7%9b%b8%e5%b0%8d%e8%ab%96" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;「物極必反相對論！」&lt;/p&gt;&#10;&lt;p&gt;這句格言在整個駕訓班課程不斷從他的口中聽到。它在我的印象中實在太有記憶點了。因為根據我的理解，物極必反是個四個字的成語，大概是在講中庸之道比較好，太過頭也容易產生反效果或者失敗等等&amp;hellip;&amp;hellip;的意思。至於相對論則是物理學上某個用來描述光速跟時間有關的理論。&lt;/p&gt;&#10;&lt;p&gt;我大概有十天左右一直聽到這個詞彙卻不知其所以然，但本著節省時間練習開車的中心思想，我是絕對不會開口問的XD 直到有一天，我突然想通：「啊！左轉方向盤之後不就是要往右轉回來嗎？他該不會說的就是這個吧？」回想情境印證一下果然沒錯，是這個意思。頓時有點開心自己終於聽懂他到底在講什麼鬼，但同時也擔心自己是不是語言能力壞死所以終於可以理解這句話的「深意」。&lt;del&gt;順便跟自己約定之後要盡量避免跟他溝通以降低自己上課時的血壓。&lt;/del&gt; 我只想問到底怎麼有人可以把中文講成這樣？為什麼不要就直接講方向盤就好啊啊啊啊啊（崩潰&lt;/p&gt;&#10;&#10;&lt;h2 class="relative group"&gt;你覺得我的時薪有多少&#10; &lt;div id="你覺得我的時薪有多少" class="anchor"&gt;&lt;/div&gt;&#10; &#10; &lt;span&#10; class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;&#10; &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#%e4%bd%a0%e8%a6%ba%e5%be%97%e6%88%91%e7%9a%84%e6%99%82%e8%96%aa%e6%9c%89%e5%a4%9a%e5%b0%91" aria-label="定位點"&gt;#&lt;/a&gt;&#10; &lt;/span&gt;&#10; &#10;&lt;/h2&gt;&#10;&lt;p&gt;「你知道為什麼教練都沒有年輕人嗎？」&lt;br&gt;&#10;「因為駕訓班教練薪水太少了。你覺得我的時薪有多少？」&lt;/p&gt;</description></item></channel></rss>