面試題目記錄(1)

更新 發佈閱讀 3 分鐘
raw-image

題目敘述

撲克牌有4種花色,分別是黑桃、紅心、方塊跟梅花
其中每一中花色都有一個數字,範圍從1~13,總共13*4 = 52張牌

1) 請從52張牌中挑選13張牌,輸出第一列所示,牌跟牌之間用tab隔開。
2) 請將抽出的13張牌依數字由大至小排序,同樣數字下比花色,花色大小為
黑桃>紅心>方塊>梅花。

注意! 排序時不能使用內建的sort()




raw-image

解題思路: 以python撰寫為例

  • 將花色以list存放,黑桃(0)、紅心(1)、方塊(2)、梅花(3)各自有對應的index。
  • 抽出來的牌以tuple表示,用dictionary存放這13張牌,想法上以hash map 為出發點。
例如抽出來的第2張牌是紅心8 -> { 2 : (1, 8) }

實作

隨機從數字0~3挑選花色,從1~13挑選數字,將數對存到tuple中作為value,第幾次選取作為key。因此在迴圈執行後,pickedCard裡面存放著這13次抽出來的牌,用迴圈依次輸出。

其中pickedCard取出的花色是以數字呈現,作為color的index得到實際的花色字串,在輸出時與轉換過的數字字串做串接,印出結果。

第2個部分要的是排序結果,但我並沒有使用排序,而是讓迴圈從數字13~1、花色從0~3依序檢查是否為被挑出來的牌,如果是就輸出。

簡單來說我使用的是檢查所有請況,從最大到最小,有符合要件就輸出。

感想

先前其實沒對撲克牌的題目做過練習,不過曾經在網路上看過JAVA寫的一些撲克牌程式的處理,因此至少會考慮把花色跟數字分開做處理。看到題目說明不能使用內建排序方法,原本想說自己寫一個function來用就好,不過頂多也就52張牌,於是就採取比較tricky的方式達到題目的要求。

考試當下是筆試不是上機,語法上也沒有那麼確定,不過事後寫出來還是有寫對9成的語法,也同時發現了沒注意到的bug,就是當我挑選的那13張牌有重複時,依序輸出就不會是13張牌,而是少於13張牌,然而實際上也不應該有重複的牌出現,算是沒注意到的大問題。





留言
avatar-img
Err500
14會員
83內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
Err500的其他內容
2025/04/03
這篇文章記錄了作者使用 Go 語言和 Ebitengine 遊戲引擎開發 2D 遊戲的心得,從專案初始化、安裝套件、實作遊戲介面到處理鍵盤輸入和邊界等,並分享了遊戲開發中學習到的經驗與知識。
Thumbnail
2025/04/03
這篇文章記錄了作者使用 Go 語言和 Ebitengine 遊戲引擎開發 2D 遊戲的心得,從專案初始化、安裝套件、實作遊戲介面到處理鍵盤輸入和邊界等,並分享了遊戲開發中學習到的經驗與知識。
Thumbnail
2025/03/28
本文章提供Neovim在Windows環境下的安裝教學與入門設定,從基本安裝、環境變數設定到使用kickstart.nvim套件快速配置IDE環境,降低新手入門門檻。文章也提及了進階設定與客製化的方向。
Thumbnail
2025/03/28
本文章提供Neovim在Windows環境下的安裝教學與入門設定,從基本安裝、環境變數設定到使用kickstart.nvim套件快速配置IDE環境,降低新手入門門檻。文章也提及了進階設定與客製化的方向。
Thumbnail
2025/03/27
前言 Discord聊天時發現而機會出現電流聲,不確定是不是雜音抑制反而暴露了微小的噪音,一方面在公司內開會,可以插3.5mm耳機孔,登入會議軟體方便一點,只是不好意思拿耳罩式到公司,顯得太過張揚,趁還有點數來網購新玩物。
Thumbnail
2025/03/27
前言 Discord聊天時發現而機會出現電流聲,不確定是不是雜音抑制反而暴露了微小的噪音,一方面在公司內開會,可以插3.5mm耳機孔,登入會議軟體方便一點,只是不好意思拿耳罩式到公司,顯得太過張揚,趁還有點數來網購新玩物。
Thumbnail
看更多
你可能也想看
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
在 vocus 與你一起探索內容、發掘靈感的路上,我們又將啟動新的冒險——vocus App 正式推出! 現在起,你可以在 iOS App Store 下載全新上架的 vocus App。 無論是在通勤路上、日常空檔,或一天結束後的放鬆時刻,都能自在沈浸在內容宇宙中。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
Thumbnail
題目敘述 Combination Sum II_Leetcode #40 給定一個整數陣列candidates 和 目標值target。 每個陣列元素只能選擇一次,請問有多少種組合方法,可以使得組合數總和 = target? 請把滿足組合數總和 = target的組合方法以陣列的形式返回答案
Thumbnail
這題就是經典的考排序驗算法, 不管在教科書、上機考、面試白板題都是一個很基本又滿熱門的題目。 題目會給定一個輸入陣列,要求我們實作一個排序演算法,把陣列元素從小到大排好。
Thumbnail
這題就是經典的考排序驗算法, 不管在教科書、上機考、面試白板題都是一個很基本又滿熱門的題目。 題目會給定一個輸入陣列,要求我們實作一個排序演算法,把陣列元素從小到大排好。
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
Python的random模組是一個非常實用的工具,可以讓我們在程式中生成隨機數或從序列中隨機選擇元素。下面介紹一些常用的random模組函數。 首先,我們需要導入random模組,可以使用以下語句進行導入: 接下來,我們來看看random模組中的一些基本函數: random.random()
Thumbnail
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
Thumbnail
今天我要跟大家分享的是python寫的猜數字遊戲。遊戲的規則很簡單,就是電腦會隨機產生一個1到100之間的整數,然後讓使用者猜這個數字是多少,每次猜完電腦會提示使用者是猜大了還是猜小了,直到猜中為止,遊戲還會記錄使用者猜了幾次,並根據次數給予不同的評價,下面我們來看看程式碼吧!
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
Thumbnail
我們介紹了字串和列表的索引和切片操作。索引使用方括號[]來選擇字串或列表中的特定元素,並可以使用正向索引(從0開始)或反向索引(從最後一個元素為-1)來訪問元素。切片使用方括號[]和冒號:來選擇字串或列表中的一段子序列,指定起始位置和結束位置(不包含),並可以使用步長來控制間隔。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News