[情報] 台大資工 程式設計 題目
pA
Description
給定a,b兩個數字,1<=a,b<=9999,印出a與b的直式乘法。
Sample Input(其實我忘記他給的數字了,就自己手生一個XDrz)
23
202
Sample Output
23
204
----
92
0
46
----
4692
先備知識:模擬
pB
Description
給定1<=n<=100,求n能拆解成幾種數字之和的組合
Sample Input
4
Sample Output
5
Hint
4
3 + 1
2 + 2
2 + 1 + 1
1 + 1 + 1 + 1
共五種
先備知識:DP
pC
Description
給定一個字串,長度<=10,再另外用檔案給一個字典檔
你的目標是用一個簡單的加密演算法去加密原本的字串
使得加密後的字串也出現在字典當中
演算法的要求是一種字母對應到另一種字母(比如a->c)
同時沒有兩種字母對應到同一種字母(a->c b->c)(x)
再同時沒有一種字母對應到他自身(a->a)(x)
輸出一組合理的加密後的字串
Sample Input
zigzag
Sample Output
barber
另一組Sample Input
low
Sample Output
old
先備知識:檔案i/o 字串處理
pD(其實我真的不知道這題要考什麼XDrz)
Description
給定一個DNA字串
轉錄一個RNA給他
20<=字串長度<=1000
Sample Input
ATCGATCGATCGATCGATCG
Sample Output
UAGCUAGCUAGCUAGCUAGC
先備知識:字串處理
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.172.5
※ 文章網址: http://www.ptt.cc/bbs/SENIORHIGH/M.1396184666.A.27C.html
推
03/30 21:08, , 1F
03/30 21:08, 1F
推
03/30 21:22, , 2F
03/30 21:22, 2F
推
03/30 21:25, , 3F
03/30 21:25, 3F
推
03/30 21:31, , 4F
03/30 21:31, 4F
→
03/30 21:42, , 5F
03/30 21:42, 5F
→
03/30 21:42, , 6F
03/30 21:42, 6F
推
03/30 21:45, , 7F
03/30 21:45, 7F
推
03/30 22:42, , 8F
03/30 22:42, 8F
推
03/30 23:16, , 9F
03/30 23:16, 9F
→
03/30 23:37, , 10F
03/30 23:37, 10F
推
03/30 23:45, , 11F
03/30 23:45, 11F
→
03/31 00:21, , 12F
03/31 00:21, 12F
推
03/31 03:22, , 13F
03/31 03:22, 13F
推
03/31 08:24, , 14F
03/31 08:24, 14F
→
03/31 08:38, , 15F
03/31 08:38, 15F
→
03/31 13:36, , 16F
03/31 13:36, 16F
推
03/31 21:42, , 17F
03/31 21:42, 17F
推
04/04 00:27, , 18F
04/04 00:27, 18F
推
04/04 20:05, , 19F
04/04 20:05, 19F
b大
題目解釋
第三題他會給你一個dict.txt跟你的exe檔放在同一個目錄下,裡面放的姑且當作是任何
一本英文字典。然後他會在螢幕輸出一個字串,你要做的是隨便設計一種加密的方法,讓
這個字串str變成另一個字串str',然後輸出str'。題目給的範例是a->z, b->y, c->x ...
z->a,也就是說old經過這個加密的方法會變成low。
給你一些要求
一、str'要出現在他給的dict.txt之中
二、str的字母表與str'的字母表一一對應,也就是說原本str中一個字母是a,你可以把
a對應到b,那str中a的位置到了str'中就要變成b EX:_a_ -> _b_
一個字母不能對應到兩個字母,兩個字母也不能對應到一個字母,也就是說我如果掌握了
字母表的對應關係,可以從str'倒推回str。
三、字母表中的字母不能對應到自己, 也就是a->a這件事是不允許的,不然你其實可以直
接把str當成是str'輸出就好
舉我自己生的例子好了 zigzag -> barber
我生出來的字母表的對應長這個樣子
a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z
---------------------------------------------------
e| 不重要 |r| |a| 不~重~要~~~~ |b
透過上面這個偷懶的字母對應我就可以把zigzag加密成barber
Solution
我的做法是先讀入他給你的字串str
然後對字典裡的每一個單字假設他是str'然後檢驗,
不符合就讀入下一個單字,符合就輸出然後結束
首先我檢查長度,長度不一致的話就一定不可能便跳過
一致的話對每一位檢查,如果str中的字母一樣,str'中同樣位置的字母卻不一樣就失敗
反之亦然
找到的第一個配對成功的就是答案
※ 編輯: qitar888 (118.167.169.110), 04/05/2014 17:28:52
→
04/14 16:53, , 20F
04/14 16:53, 20F
→
04/14 16:53, , 21F
04/14 16:53, 21F