作者ric2k1 (Ric)
看板EE_DSnP
标题[情报] 作业 1.2 中的 string mp
时间Wed Oct 3 19:20:41 2012
作业 1.2 中有一个 string mp,它的作用在提供 constant time 的 look up,
让你可以很快的把正常人心中字母的排序与疯狂博士心中的排序很快的对应起来。
虽然也许大家随便写写也可以让它 work,
但我的目的是让大家了解如何把 compile time 就可以知道的资讯,
利用 static array 做到 const time 的 look up,
所以以下的提示请大家务必搞懂!!
* "string mp" 是用来查 "正常人心目的字母排序" 与 "疯狂博士的字母排序" 的对应。
* 以上的对应就是存在 "string mp" 身上
* mp 虽然是个 string object, 但你可以用 mp[i] 来取的 string 中第 i 个字元
* 以上的 i 是 int, 如果是 char ch, 想想看 ch - 'A' 的意义
* 所谓的 original string, 是指原来的书名、作者名称、等等
* 所谓的 mapped string 是一个 UPPER case 的 string,
它反应了 original string 在疯狂博士心中的顺序。
比方说: dog 会 mapped 到 EBH
abc 会 mapped 到 FCD
因为 FCD 排在 EBH 的後面,所以 abc 在疯狂博士的心中应该就要排在 dog 的後面
* class xStr 的 constructor 会 take 一个 string,
然後呼叫 "static char xMap(char c)" 把它换成 mapped string
也就是说,xMap(c) 里头应该要利用到 "string mp",
同时也要处理一些当 c 不是字母的情况。
先这样,如有不清楚在提问!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.25.108
1F:推 simpdanny:这题还留着啊XDDDD 10/03 19:27
2F:推 holyheart:要是写之前就看这篇可以少走很多冤枉路... 10/05 12:25
3F:推 peter0902:今年hint好详细喔! 写之前一定要先看懂... 10/05 15:37
4F:推 caspercat:我有一点点蠢问题...abc 在疯狂博士的心中应该就要排在 10/07 17:47
5F:→ caspercat:dog 的後面的话,那为何a小题的output是abc not smaller 10/07 17:48
6F:→ caspercat:than dog?排序时不是要把dog排在前位吗? 10/07 17:49
7F:→ caspercat:还是只是当作排序时由小到大的意思? 10/07 17:51
8F:→ ric2k1:恩,排序时从小排到大。 10/08 23:10
9F:推 nickchu35:隔年有用推 10/05 15:33