Re: [情報] C++大師認證 (PA1)

看板C_and_CPP (C/C++)作者 (AzureBlaze)時間13年前 (2013/03/07 18:48), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
不久前PA1也ALL TESTS PASS了,來分享一下心得 關於環境 =================== 我平常都寫Windows程式,跟linux下的開發環境超級不熟 所以我選擇的方式把ubuntu灌在VirtualBox裡 然後分享一個資料夾給他 直接在本機用VisualStudio編輯,然後用PuTTY ssh進ubuntu編譯 (在外面遠端桌面回家,VirutualBox的畫面會很卡) 不過有一個問題就是我不知道該如何在linux上用debugger isspace()丟int進去會seg fault, 找了好久插一堆printf才發現是他的問題 關於進行 =================== 先把題目讀清楚 我建議稍微修改一下他的test script 另外弄一個清單決定要跑哪些test 然後把他的token一個一個慢慢做起來。 特別是100的部份通常都只需要實做某幾個token就可以過了 所以加入剛剛完成部份的test就可以馬上知道有沒有錯誤 我100系列完成後剩下的就全部一起過了 關於內容 =================== 如果用比較暴力一點的方法做其實沒有很難,只是很囉唆而已 然後trigraph真TMD該死,鍵盤上沒有中括號大括號的人都該被吊死 skeleton code給的是把input一個一個餵進去tokenizer 不過我把input從utf8轉成int後就全部一起倒進tokenizer,然後用一個while去跑 能夠任意看前後是什麼東西,和任意移動目前處理字元的位置, 可以減少很多state的數量 不過做後code很噁心就是了 一堆while if for switch疊在一起,常常搞不清楚在break誰continue誰 如果後面作業發現這邊出事我可能會很後悔 花費 =================== 不含建環境讀題目讀標準的時間大概10~15小時 笨一點的方法似乎比較快XD 總行數約1200行,其中PPTokenizer 800行 (一堆判斷某個字元是否屬於某個集合擺在外面) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.59.231
文章代碼(AID): #1HE723mP (C_and_CPP)
文章代碼(AID): #1HE723mP (C_and_CPP)