Prob_Solve 板


LINE

最近拿到 C/C++ 面試卷,比較有印象的是其中三題, 由於時間有限,沒能把所有題目記下來,且為原文 (所以我的敘述可能有點差異), 也僅憑印象一起來探討。 1. 迴文數 迴文數的定義版上很多人都知道了 < ACM 基礎題 >, 但這題隱喻中加了幾個限制: a. effect b. unsigned IsPalindrome(unsigned num); c. 不可調用任何 C/C++ 函式庫完成 所以和 ACM 不同的是不可以用 char* 來存。 當下我想到的作法是二種,一種是用 while(num) {num/=10;} 技巧,每個位數塞到 const int MAX=20; int dig[MAX]; 裡面去,同時紀錄使用了 used_dig 位數, 問題便轉成了對一 array/string 判斷回文數 <最後是用這解法>。 另一想法是直接找 min pwr, st pwr>=num, 之後再做一個 rst 為 num 的 inverse, 最後再 return rst==num <直覺較麻煩,所以沒用這個>, 請教各版友針對此三限制之 Palindrome number 有何想法? 2. 移除陣列裡重覆之元素 unsigned remove_dumped_memory(unsigned *array, unsigned nItem); 假設一 array 已經過遞增排序, int array[] = {1,1,2,2,2,3,5,8,8,9}, 由於元素有 10 個,所以在傳入 nItem 的時候會先確定是 10 << 也就是元素個數 >>。 但題意是,經過 remove_dumped_memory 後,能把 array 重覆的拿掉, 然後傳回不重覆的元素個數,以上述為例,最後 array[] = {1,2,3,5,8,9}; 傳回6 (如果問我 array[6]~array[9] 哪去了?我只能說從題意看不出來)。 同樣的題目裡有個 keyword : effective 直覺掃一遍即可,當時粗寫大概是 unsigned remove_dumped_memory(unsigned *array, unsigned nItem) { int cnt=0, last_position=0; for(i=0; i<nItem-1; ++i){ if(array[i]!=array[i+1]) { array[last_position++]=array[i]; ++cnt; } } return cnt; } 但還有另一份試題沒寫,沒再花時間磨這個。 3. MaxLevel 這個資料結構的東西我很亂,要求要 C 寫。題意是要求 binary tree deep level ( 如果我沒意會錯的話 ... ) typedef struct node{ int value; struct node* left; struct node* right; }mynode; int MaxLevel(struct node* p); 因為不熟,時間也來不急,就亂寫了。大概是寫得像 int max(int a, int b) { return (a>b)? a : b; } int MaxLevel(struct node* p) { if(p==NULL) return 0; else return 1+max(MaxLevel(p->left), MaxLevel(p->right)); } 最後這題反而被抓出來電 Orz -- 世界上有種, 不可能 轉換為 無限可能 的強大力量, 我稱它為 - 信念 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.195.165.40 tropical72:轉錄至看板 C_and_CPP 02/04 17:47 ※ 編輯: tropical72 來自: 123.195.165.40 (02/04 17:51)
1F:→ firejox:回文數就邊除編建inverse number就好了呀~ 02/04 18:11
2F:→ tkcn:第三題這樣寫有啥問題? 不過 function name 叫 depth 就夠了 02/04 18:37
3F:→ suhorng:第二題a[6]...a[9]還在但是不重要不用管他 02/04 19:13
4F:→ tropical72:我其實想知道是怎麼死的,最後只有提 "你這題好像沒解 02/04 19:17
5F:→ tropical72:出來",所以想說是不是我解錯了 Orz 02/04 19:17
6F:→ tropical72:前兩句是針對第三題。 02/04 19:18
7F:→ tropical72:<<在想是不是我額外寫了一份 int max(int,int); 關係>> 02/04 19:19
8F:推 DJWS:1其實不用開陣列 原數不斷 %10 /10 另一數不斷 +餘數 *10 02/04 20:58
9F:→ DJWS:最後比較兩數是不是完全相等就可以了 02/04 20:59
10F:→ DJWS: (順序寫反了) *10 +餘數 02/04 21:00
11F:→ DJWS:2就由小到大掃過陣列 遇到不一樣的數字就存起來 02/04 21:01
12F:→ DJWS:一樣也不需要開新的陣列 02/04 21:01
13F:→ DJWS:3的話,沒有額外資訊就只能DFS/BFS了 02/04 21:02
14F:→ DJWS:或者寫成遞迴的模樣 答案 = max(左子樹高度,右子樹高度) + 1 02/04 21:03
15F:推 DJWS:另外2有一個issue: 如果不開新陣列,就會浪費a[6]~a[9]記憶體 02/04 21:14
16F:推 DJWS:to二樓: 也許原po的第三題寫得最好 面試官想要深入討論 XD 02/04 21:34
17F:→ tropical72:謝謝各位意見,大概知道哪些地方沒做很好.感謝. 02/04 21:35
18F:→ tropical72:oh,面試官是直接跟我說,"這題好像沒解出來",所以我想是 02/04 21:36
19F:→ tropical72:不是我解得有問題 <如果誤會題意的話就另當別論便是> 02/04 21:36
20F:推 DJWS:我在想是不是因為沒有呼叫 function 把 tree root 當作參數? 02/04 21:42
21F:→ DJWS:使用者肯定不知道tree root在哪 所以要幫使用者處理到好 02/04 21:43
22F:→ DJWS:可能要整個包成一個函數 裡面要呼叫你寫的maxheight(root) 02/04 21:44







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP