看板 C_and_CPP 關於我們 聯絡資訊
https://i.imgur.com/1p7si7t.jpg
https://i.imgur.com/86KmZwv.jpg
https://i.imgur.com/0PN7VEy.jpg
如題 完全不懂為什麼 跪求解釋OTZ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.72.106 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1507063376.A.826.html
CoNsTaR: 打高空的說法,因為 c/c++ 有 side effect,結案 10/04 05:04
Schottky: 與其說不同意樓上,不如說我不知道樓上在講什麼? 10/04 05:28
Schottky: 你的兩個 scanf 寫錯了,把 warning 全開就會有警告了 10/04 05:29
Schottky: 這些地方要小心點,出槌時會出現一個摸不著頭腦的 bug 10/04 05:30
Schottky: 然後你的演算法是錯的,試試 aabbb 和 cccdd 10/04 05:44
yvb: 發[問題]不是有格式?且程式用貼圖有點糟,建議用置底那篇方式. 10/04 08:37
yvb: 然後scanf處有warning但不影響; 後半比較像是算總字數而已. 10/04 08:45
yvb: 問題在於, printf 出來的 13 13 是否如同預期. 10/04 08:47
yvb: 也就是說, 犯了置底十三誡中,第一誡的延伸, 陣列後段無初值. 10/04 08:51
kingofsdtw: https://goo.gl/gcTqGq 10/04 09:39
kingofsdtw: 路過.文字處理是一門學問,我個人是不建議花太多時間 10/04 09:42
kingofsdtw: 因為沒人會用C std來等待輸入,argc/argv學好就好 10/04 09:43
x000032001: 好奇不會用std IO 要怎麼處理檔案IO 10/04 09:48
CoNsTaR: 樓樓上表示檔案 IO?我都只用網路 socket 和 sql 10/04 10:32
Schottky: 我昨晚是喝多少... Orz 10/04 11:19
Schottky: yvb 說的沒錯,問題出在陣列無初值 10/04 11:21
Schottky: 你以為陣列後段全部是 0 其實並不。 10/04 11:21
Schottky: 不信可以在 scanf 前加上 memset(first,0,100); 和 10/04 11:22
Schottky: memset(second,0,100); 別忘了 #include <string.h> 10/04 11:22
ketchupgood: 呃 aabbb跟cccdd顯示是對的啊 10/04 11:49
ketchupgood: 我看看樓上大大說的 我是完全新手所以有些術語聽不 10/04 11:51
ketchupgood: 太懂 10/04 11:51
ketchupgood: 喔喔 可以了 原來要先設成0 10/04 11:57
ketchupgood: 然後發文格式不對不好意思 沒什麼用過這版 10/04 12:00
james732: 置底文有貼程式專用的網站,不要用截圖的 10/04 12:06
ketchupgood: 然後再問一個例子 如果abc!e跟acbe? 也要做成一樣 10/04 12:15
ketchupgood: 的話 我這個那邊有問題 10/04 12:15
ketchupgood: 哪邊* 10/04 12:15
ketchupgood: https://godbolt.org/g/pLK63D 10/04 12:21
MOONRAKER: 噗 不是哪邊有問題 是哪邊沒問題 10/04 12:52
MOONRAKER: 用到三層for 你腫大了 比西瓜還大 10/04 12:53
MOONRAKER: 你最好重發一篇 照規定格式貼好 10/04 12:53
Schottky: 樓上的意思是同樣的程式你比別人多花一萬倍時間去跑 10/04 13:00
stucode: 建議原PO從頭思考一下,不只是時間複雜度的問題,你的 10/04 13:02
stucode: 演算法從一開始就沒有輸出正確結果。 10/04 13:02
stucode: 例如:ab跟aa 10/04 13:06
MOONRAKER: for最討厭的就是在for裡面更動迴圈計數器(控制變數) 10/04 13:10
Schottky: 對啦,(abcde, aaaaa) 或 (abcdef, aaabbb) 這種組合 10/04 13:11
MOONRAKER: 雖然C不太管 但是有兩個counter同時前進 條件也不一定 10/04 13:11
MOONRAKER: 正常應該用while做 10/04 13:12
Schottky: 多贈送一組測資 (abc, abcskdfjskghdfkjghd) 10/04 13:47
Schottky: 其實題目有提示正確的演算法了,麻煩把題目再看一次... 10/04 14:05
peterwu4: 原po是用286在算嗎?XDD 終止條件設字串長度就好了 10/04 18:38
ketchupgood: 沒 我只是天生反骨不想用提示做而已…… 10/04 18:44
ketchupgood: 提示做法我已經花10分鐘打完了 10/04 18:44
Schottky: 喔喔喔,原來是太強所以要做自我挑戰嗎 10/04 18:53
Schottky: 這題如果讓我來做,會把兩個字串都sort過再strcmp即可 10/04 18:54
MOONRAKER: SORT? 10/04 21:58
Schottky: 對,字串中的字母照順序重排,在這題就順便剔除非字母 10/04 22:32
Schottky: 兩個字串如果是同一組字母的不同排列sort過自然會變相同 10/04 22:33
Schottky: 這個作法複雜度不如題目提示的distribution counting快 10/04 22:34
CoNsTaR: 其實題目的做法不也是先做 bucket sort 再比較兩個陣列 10/04 22:37
CoNsTaR: 嗎 10/04 22:37
Schottky: 可以視為distribution sort或bucket sort的前半部沒錯 10/05 02:38
Schottky: 如果要我為我的方法想些廣告單上的亮點,我想應該會是 10/05 02:38
Schottky: 很好寫,兩個 qsort() 一個 strcmp() 就收工了 10/05 02:39
Schottky: 但題目的方法可以處理接近無限大的字串,完全望塵莫及 10/05 02:48
Schottky: 實際上如何做,留給原PO腦力激盪一下,顯然不能用scanf 10/05 02:48
Schottky: 我說的不一定對就是了,也許我今天也喝了兩瓶高粱發酒瘋 10/05 02:51