字串解碼編碼
排序pta中對鍊錶的考察不像leetcode,大部分時候的考察是通過靜態鍊錶的方式
大多數是25分的題,用時大多在25-30分鐘,準確率不錯
靜態鍊錶一般會給 address key next 作為乙個node,一般情況下數量級會小於10^5 因此可以通過乙個大陣列存放給的節點,然後通過遍歷鍊錶完成操作.
一般給的node會比鍊錶中含有的node多,即給了一些不在鍊錶中的node.
給的煉表頭結點可能會是-1\null即鍊錶可能為空
要求的操作比如按條件分開,分段排序等,每一段也可能是空的(即不含有相應條件的node),需要做非空判斷.
因為需要頻繁判空和操作最後乙個節點,注意vector.size()
的時間複雜度是常數的,返回值型別是unsigned,因此如果使用vector.size()-1
這種判斷方法結果在空的時候會是個很大的數(溢位).需要注意.
大多數是25分的題,少部分和排序等一起作用
可以把較短的字元/數字組合成的串按位乘以字元/數字的域編碼成數字,然後使用時再解碼.
對於給定較長整串包含多組資訊的情況,不妨把需要用到的資訊在錄入串的時候就一起拆出和串一起儲存.或者需要使用string型別,因為string的substr和過載的比較運算子都很好用.注意和strcmp一樣,對於值是a和b的string,a在需要統計的時候可能和map結合,在使用完map後可以把map的內容轉到vector裡進行排序.
題目會很繁雜
一般寫起來會分比較多的情況,要求也比較多,寫起來很複雜,寫之前一定要構思好過程,避免返工.
可能在輸入時和輸出時都需要做過濾,一般我把過濾步驟放在輸入和從map轉到vector的過程中
注意排序函式的正確性.
就是排序唄,一般是使用結構體陣列進行排序,部分題還需要使用map統計
大多數是25分的題,用時大多在25-30分鐘,準確率不錯
一般的排序題直接sort秒
對於排序-統計之類的題,可以在排序之後使用map等進行統計然後再轉回陣列儲存的方法
對於要求多種排序的題,最好在一開始就有乙個排序來避免超過時間,但是很多種排序的題時間本身很充裕,對單獨的要求在要求處單獨排也行.
有些輸入可能是需要過濾的
排序後的陣列可能會是空的,
需要對輸出時候的陣列進行判空,
需要在輸入的時候進行控制
PTA 期末複習 題目總結
6 1 找兩個數中最大者 14 分 本題要求對兩個整數a和b,輸出其中較大的數。函式介面定義 int max int a,int b 其中a和b是使用者傳入的引數,函式返回的是兩者中較大的數。裁判測試程式樣例 include int max int a,int b int main 你的 將被嵌在這...
PTA題目記錄
題目 已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。輸入格式 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1表示序列的結尾 1不屬於這個序列 數字用空格間隔。輸出格式 在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為...
pta題目 數字統計
問題描述 caisz有個女兒,已上幼兒園,在幼兒園中她學會了數數,但還不會做統計。現給定乙個數字串,長度小於100,統計0,1,2 9 的個數。好心的你幫幫她吧。輸入格式 輸入多組數字串,長度小於100 輸出格式 數字串中的各個數字的個數,數字統計按照0,1,2,3。9的順序輸出 輸入樣例 在這裡給...