Re: [情報] C++大師認證 (PA1)
不久前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
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章