Try   HackMD

2023 年「資訊科技產業專案設計」作業 1

貢獻者: 路易十四 KQC
模擬面試影片
模擬面試: 漢-1
模擬面試: 漢-2
模擬面試: 英

344. Reverse String

word=input("please enter the word you want to reverse:")    ##key in 
s=[]
s.extend(word)
def reverse(l,r):
    if l<=r:
        s[l],s[r]=s[r],s[l]
        reverse(l+1,r-1)
reverse(0,len(s)-1)
print(s)

74. Search a 2D Matrix

    def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:
        ROWS,COLS=len(matrix),len(matrix[0])

        top,bot= 0,ROWS-1
        while top<=bot:
            row=(top+bot)//2
            if target>matrix[row][-1]:
                top=row+1
            elif target<matrix[row][0]:
                 bot=row-1
            else:
                break
        if not (top<=bot):
            return False
        row=(top+bot)//2
        l,r=0,COLS-1
        while l<=r:
            m=(l+r)//2
            if target>matrix[row][m]:
                l=m+1 
            elif target<matrix[row][m]:
                r=m-1
            else:
                return True
        return False

94. Binary Tree Inorder Traversal

# Definition for a binary tree node.
class TreeNode:
     def __init__(self, val=0, left=None, right=None):
         self.val = val
         self.left = left
         self.right = right
class Solution:
    def inorderTraversal(self, root: Optional[TreeNode]) -> List[int]:
        res=[]

        def inorder(root):
            if not root:
                return
            inorder(root.left)
            res.append(root.val)
            inorder(root.right)
        inorder(root)
        return res

參考資料


第二次作業-他評 01

關於 interviewer

  • 優點
  • 前情提要讓這次的模擬面試感覺很真實。
  • 英文講得挺清楚,很棒!
  • 可改進的地方
  • 00:16: interviewer你的臉露出來了啦XD。
  • 可以故事化題目敘述。

關於 interviewee

  • 優點
  • 我覺得講話速度不快不慢,很棒!
  • (漢語-1)
    • 04:23: 幫程式碼寫註釋很棒。

      用 list() method 也能將文字切開成陣列。

    • 01:25畫圖舉例解釋程式想法的很清楚。
  • (漢語-2)
    • 個人覺得程式碼很簡潔,每行都短短的,挺易懂。
  • (英)
    • 在以例子講解程式的時候,我覺得講得很清楚。
  • 可改進的地方
  • 提出的方法只有一個,沒有優化的過程有些可惜。
  • 如果能遵循 REACTO framwork 會更好。
  • (漢語-1) 03:31: 希望程式碼部份可以放大,這樣interviewer也能看得比較清楚。
    • 程式的if l<=r:,可以拿掉等號,在當字串為奇數長度時,在左右pointer相等時,他仍然進入後續運算。
  • (漢語-2)

    在hackmd可以時,程式碼遷入可以選擇程式語言,在編輯模式時,```後面加上python=,就會呈現對應變數的顏色highlight,加上=可以讓程式區塊前面添加數字符號,在閱讀模式能增加可讀性。

  • (英)
    • 00:41子節點大家應該會說child,不是children。
    • 語助詞可能有點多XD。
    • 後面的音訊有些受損。

第二次作業-他評 01

關於 interviewer

  • 優點
  • 有對原先的題目做出變形。
  • 可以改進的地方
  • 在說明題目時可以將文字放大並使用色系差異較大的顏色組合使 interviewee 可以更清楚的看到題目。
  • 與 interviewee 的互動可以再增加。

關於 interviewee

  • 優點
  • 語速適中,咬字清晰。
  • 用繪圖的方式說明 example,有助於面試通順。
  • 可以改進的地方
  • interviewer 與 interviewee 應該要有不同的畫面,這樣能讓人比較好知道當前扮演什麼角色。
  • 在解釋完自己的做法與例子後,可以先與 interviewer 交流,確認 此作法合乎雙方的共識再開始 coding。
  • 4:21: 在 coding 時應當減少話說到一半的狀況。

第二次作業 - 他評02

for interviewer

  • 優點
  • 口齒清晰,不用字幕也能輕鬆聽懂
  • 在test時有提出特例反問interviewee
  • 可改進的地方
  • 可適度包裝題目
  • 1:23 在說明題目時,時間複雜度應該要完整說出「『Big-O』 log m乘n」而不是只講「log m乘n」

for interviewee

  • 優點
  • 有自我介紹環節,很用心模擬面試情境
  • 1:27 有用小黑板輔助舉例,很清楚
  • 可改進的地方
  • 0:50 「串列裡面就是倒過來的hello」並沒有達到Repeat, Examples確認題目理解的效果,若是interviewer沒有給input&output的舉例,可能會理解成回傳["olleh"]而不是['o', 'l', 'l', 'e', 'h']
  • 6:43 在說明或打字的時候,講話會變得含糊
  • 常會有讓interviewer空等的情況,如:
    • 4:20「再來就是建立一個」到講出「陣列」間隔了17秒去打前一步讀取輸入的註解,由於讀取輸入很直觀,這一步必要性較低卻造成了多餘的等待時間,有點可惜
    • 4:43 「然後用」並沒有講出要用什麼,建議可邊打字邊說明,或至少先講完再實作,至少讓interviewer知道為了什麼而等
  • 7:08~7:34 游標會在說明時迅速移動,若遇到網路品質不佳會卡頓
  • 7:59 「誒對」會讓人有點問號,似乎很驚訝結果是正確的
  • 8:14 「那我再『隨便』試另外一個字」這句裡『隨便』一詞容易給人不專業的感覺
  • coding的字太小,而且畫質只有720p,在影片中看起來頗吃力

第二次作業 - 他評03

  • 優點
  • 口齒很清晰 讚
  • 小黑板很讚

for interviewer

  • 可改進的地方
  • 可以包裝一下題目,多引導interviewee一點內容,再讓對方打程式,對話可以試探interviewee的想法跟能力
  • 時間允許的話,限制條件可以等interviewee打完code後再給他,看看對方會有什麼想法,也可以看看在沒有限制條件的時候對方會怎麼想。這樣有多一個機會讓雙方討論的機會。

for interviewee

  • 優點
  • 打完程式後有再講解一次程式運行流程,可以蠻清楚了解你的思考過程,同時也可以debug.
  • 可改進的地方
  • 游標一直晃可以改用選取的方式,簡單明瞭。