作者anfranion (安弗尼恩)
看板b97902HW
標題[討論] 使徒七
時間Wed Oct 29 01:39:16 2008
[Finished 歡迎大家一起來問問題or討論唷>.^]
B97902006 anfranion
B97902037 ming1053
B97902044 telgniw
B97902112 averangeall
B97902113 sa072686
B97902114 rewqrewwq
B97902115 godgunman
B97902116 drazi
[提供資訊]
1. 變數名稱之類的可能有數字
2. 排序可以使用O(n^2)的
3. 陣列開不夠大可能會9分
4. 變數followed by \n也要注意
有幾個特別的地方想講一下,所以要放這個′▽`)
**********************防雷分隔線************************
1. 簡而言之,題目到底是什麼?
不要像我一樣複雜化問題了(就這樣吃了N次零分囧),這題簡而言之就是
找出連續的_、A~Z、a~z,以及0~9(但是不可以在字首)
然後紀錄所在行數(同時要注意在同一行出現的情形)
以及最後按照字典順序(也就是ascii碼的大小順序)輸出
(Ex : i, j, io, hello, h0, h1按照字典順序排完是h0, h1, hello, i, io, j)
2. 輸出時按照字典順序?
要做到這點有兩個辦法,第一個是排序
第二個則是不要排序,直接每次都找最小的輸出
排序的話會比較麻煩,但是可以有技巧地利用「索引」來排序。
所謂的索引呢,就是排序時比較的對應編號的內容,但是移動的是索引陣列
比如說剛剛那個用索引編號:
1: i
2: j
3: io
4: hello
5: h0
對應關係做好了之後
在比較的時候,我們移動的就是索引,但是還是比較字串的字典順序
(可以利用strcmp(字串1, 字串2);)
剛剛那個排完了之後,會得到這樣的索引陣列:
5 4 1 3 2
這樣我就知道 編號五的要第一個印出 所以是h0
編號4的第二,所以是hello
以此類推
如果這部分看不懂的話也沒關係,每次去找最小的印也是一個很好的辦法;)
大致就是這樣 歡迎大家一起討論唷′▽`)
**********************************************
我終於懂文末防雷頁是幹嘛的了XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.50.107
※ 編輯: anfranion 來自: 122.116.50.107 (10/29 01:41)
1F:推 ming1053:XDD 然後還有搶頭香的蜥蜴 10/29 01:42
2F:推 dreamoon:希望若有人九分變十分說一下有什麼該注意的地方 10/29 01:54
3F:推 dreamoon:(若是砍掉重練就不需要了) 10/29 01:55
4F:推 MacacaXDrz:我還在9分中orz 10/29 01:57
5F:推 dh3014:似乎 io 要在 j 的前面? 10/29 01:58
6F:→ dh3014:喔,會錯意了 沒事XD 10/29 01:58
7F:推 sa072686:文末防雷是防看推文也中槍或是直接end也中槍的XD 10/29 02:01
8F:→ sa072686:四樓的9分是錯在陣列不夠大,大家檢查一下吧 10/29 02:26
9F:推 MacacaXDrz:Q︿Q,我的6個9分orz 10/29 02:27
10F:→ sa072686:最多有1000行,不同於變數名和單行長度的100,大家小心喔 10/29 02:27
11F:→ sa072686:就是說某變數每行都出現,則可能有1000個數字的意思 10/29 02:27
12F:推 ming1053:我和Macaca都爆過樓上這個= = 全開1010就不用擔心啦 10/29 02:27
13F:推 sa072686:這應該不算心機XD 二樓要不要檢查一下? 10/29 02:33
14F:推 dreamoon:對了~我的九分是爆在變數 is followed by '\n'時會出問題 10/29 02:34
※ 編輯: anfranion 來自: 122.116.50.107 (10/29 02:40)
※ 編輯: anfranion 來自: 122.116.50.107 (10/29 02:40)
15F:→ sa072686:本來想推蜥蜴繼斷尾後又被腰斬XDDD 10/29 02:41
16F:推 telgniw:1000個數字QQ 10/29 09:03
17F:→ telgniw:害我弄到一點才放棄 10/29 09:04
18F:推 benck:10個人AC了= =" 天啊 10/29 09:21
※ 編輯: anfranion 來自: 140.112.30.134 (10/29 15:53)
19F:推 averangeall:不好意思 我想問個問題 10/29 17:28
20F:→ averangeall:就是說 一般我們都寫 k = i + j; 10/29 17:28
21F:→ averangeall:測資裡有可能會有 k=i+j; 嗎 10/29 17:28
22F:推 telgniw:也有很多人是寫k=i+j;吧 10/29 17:39
23F:→ telgniw:對了我想問正常程式碼什麼時候會出現變數followed by '\n' 10/29 17:41
24F:推 LoganChien:B97902073 簡子翔完成。 10/29 17:54
25F:→ LoganChien:To 樓上上,分號寫在下一行的時候。 10/29 17:56
26F:→ LoganChien:不過這樣算不算正常的程式碼就... 見人見智了... 10/29 18:03
27F:推 averangeall:再請問一下 出現像是 printf 之類 要印嗎 10/29 18:06
28F:→ LoganChien:printf 要吧。至少我的程式會算&印。 10/29 18:10
29F:推 averangeall:謝謝 10/29 18:10
30F:推 averangeall:再請問一下 NULL 也要印嗎 10/29 18:25
31F:推 drazi:變數followed by '\n'會在呼叫一個1x個參數的function 10/29 18:27
32F:推 drazi:看到 這時通常會一個變數擺一行 10/29 18:27
33F:→ sa072686:這樣通常是followed by ','吧? 10/29 19:19
34F:推 drazi:sa你好怪...... , 通常是放前面喔~ 10/29 20:49
35F:推 telgniw:咦我也是followed by ','耶 10/29 21:24
36F:推 drazi:囧那是我怪XDDDD 10/29 21:26
37F:推 rewqrewwq:我也是followed by ','耶 10/29 21:49
38F:推 ckclark:NULL是在stdio裡面定義的 非保留字 10/29 21:51
39F:→ ckclark:更正 libio.h 10/29 21:53
40F:推 LoganChien:stdlib.h ? 10/29 21:55
41F:→ ckclark:看機器吧 總之他不是保留字 10/29 22:07
42F:→ LoganChien:(我少見多怪 =_=q) 補:測資的保留字只有題目列出的。 10/29 22:23
43F:推 dh3014:應該說 你只要忽略題目列出的保留字,其他符合syntax都要印 10/29 22:26
44F:→ averangeall:是 謝謝回答 10/29 22:34
45F:推 xflash96:follow by none...全用strtok的割分字串切掉了... 10/29 22:40
46F:推 averangeall:真開心 忙了半天 112林自均AC了 謝謝強者們 10/29 23:08
※ 編輯: anfranion 來自: 122.116.50.107 (10/29 23:51)
※ 編輯: anfranion 來自: 122.116.50.107 (10/29 23:53)