Re: [閒聊] 學校教的一點用都沒有,可憐

看板Soft_Job (軟體人)作者 (喲)時間15年前 (2010/07/19 22:22), 編輯推噓9(9031)
留言40則, 6人參與, 最新討論串13/38 (看更多)
※ 引述《zanyking (遙遠的旅人)》之銘言: : 推 ChonPiggy:抱歉因為我現在還沒出來找工作..算剛離開學校..想問一下 07/19 21:05 : → ChonPiggy:如果第一個問題只用subString跟length..做反序輸出.. 07/19 21:06 : → ChonPiggy:可以嗎@@? 07/19 21:06 : → ChonPiggy:然後第二個只用if判別之後加起來@@? 07/19 21:07 如你所想: 解決辦法有點彆扭,但還可以. #include <iostream> #include <string> using namespace std; void PrintStrRev(string str); int main(int argc, char *argv[]) { string str = "This is a String"; PrintStrRev(str); for (int i = 0; i< str.length(); i++) { if (str.substr(i, 1) == " ") break; cout << str.substr(i, 1); } system("PAUSE"); return EXIT_SUCCESS; } void PrintStrRev(string str) { if (str.substr(0, 1) == "") return; PrintStrRev(str.substr(1,str.length()-1)); if (str.substr(0, 1) == " ") { for (int i = 1; i< str.length(); i++) { if (str.substr(i, 1) == " ") break; cout << str.substr(i, 1); } cout << ' '; } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.160.212.48

07/19 22:31, , 1F
那是我一開始誤解題意...我以為是全部反序...
07/19 22:31, 1F

07/19 22:32, , 2F
像 gnirtS a si sihT 這樣...
07/19 22:32, 2F

07/19 22:41, , 3F
這程式碼對我來說好精妙..看懂花好久時間...
07/19 22:41, 3F

07/19 22:43, , 4F
這樣不會變成t tr tri trin tring 之類的嗎@@?
07/19 22:43, 4F

07/19 23:04, , 5F
stack overflow
07/19 23:04, 5F

07/19 23:37, , 6F
遞迴啊,就是把This is a String反著看,一個字,一個空格,一個
07/19 23:37, 6F

07/19 23:37, , 7F
字,一個空格,一個字,一個空格.
07/19 23:37, 7F

07/19 23:54, , 8F
有stack overflow嗎?我寫的結果是運作正常.
07/19 23:54, 8F

07/19 23:58, , 9F
只看這麼短的字當然 ok 啦 XD
07/19 23:58, 9F

07/20 00:01, , 10F
遞迴沒有問題, 但是不用迴圈解的風險就是資料量如果超乎預期
07/20 00:01, 10F

07/20 00:01, , 11F
會有 stack overflow 的風險, 所以看用途囉
07/20 00:01, 11F

07/20 00:37, , 12F
哎...problem並不是用嘴講一講就講出來的...
07/20 00:37, 12F

07/20 00:38, , 13F
要說遞迴就是stack overflow,那真是原罪論.
07/20 00:38, 13F

07/20 07:53, , 14F
哈 那你就繼續愛用吧 XD
07/20 07:53, 14F
阿你沒本事具體指出我程式哪一行有錯,只好用攻打遞迴的態度,這根本是耍無賴吧! XD 本來一件對的事情,突然被你講得好像很可恥一樣,是能當飯吃喔?

07/20 07:58, , 15F
來做個複雜度分析吧?
07/20 07:58, 15F

07/20 21:14, , 16F
l大不過是有考量到會出狀況的情形罷了~拿出來講一下也沒啥
07/20 21:14, 16F
但是我沒有製造出stack overlfow的問題啊. 你想想,為什麼一堆人寫一堆拋出 exception的程式?因為他們根本沒打算讓程式撞到錯誤. 同樣的,我用遞迴,但是我不會 沒事去輸入那麼長的文字特地去製造stack overflow. 同樣,你可以寫一些部份正確 的函式,用正確的方式使用它,這樣沒有人會說你錯. 所以我覺得特地為了挑毛病而指錯 很沒有意義. 他說的錯我也知道,可是我沒有自己跑去撞那個錯啊. ※ 編輯: yauhh 來自: 218.160.109.242 (07/20 21:19)

07/20 21:16, , 17F
怎麼看到這樣的互動~感覺跟我公司同事有點像...囧 有人就
07/20 21:16, 17F

07/20 21:16, , 18F
是喜歡提一下自己想到的情形啊~講一下也不會怎樣嘛~何必要
07/20 21:16, 18F

07/20 21:17, , 19F
針對這個開始無窮盡的討論呢?明明大家都知道現在什麼情形
07/20 21:17, 19F

07/20 21:18, , 20F
給原po 資料量大到一定程度用stack就會爆..
07/20 21:18, 20F

07/20 21:18, , 21F
這跟你程式哪一行有錯根本就沒關係
07/20 21:18, 21F

07/20 21:19, , 22F
寫程式都嘛有個限制在~不然無限放大下去哪有交差的時候...
07/20 21:19, 22F

07/20 21:20, , 23F
對啊,本來就是有個限制. 所以我沒有輸入那種長字串啊.
07/20 21:20, 23F

07/20 21:20, , 24F
我知道~我都知道~因為這已經開始跟我公司同事的互動一模一
07/20 21:20, 24F

07/20 21:21, , 25F
樣了XDDD 唉唷...真是...XDDD
07/20 21:21, 25F

07/20 21:21, , 26F
stack會爆誰不知道啊,但是怕爆就死都不用,可能比較可笑吧
07/20 21:21, 26F

07/20 21:22, , 27F
不對,andymai你搞錯了,誰要去符合你所認知的模式啊.
07/20 21:22, 27F

07/20 21:22, , 28F
沒有啦!他也就提一下嘛~大家心知肚明知道有這個就好了啊..
07/20 21:22, 28F

07/20 21:22, , 29F
重點是,今天花時間寫程式的是我,花時間嘴砲的是誰啊?
07/20 21:22, 29F

07/20 21:23, , 30F
他哪是提一下,我感覺他是沒錯可挑但非挑不可,所以就瞎講
07/20 21:23, 30F

07/20 21:24, , 31F
而且原初重點是在:只用substr和length就做得到這題的要求.
07/20 21:24, 31F

07/20 21:25, , 32F
而我在重點部份已經做到了.
07/20 21:25, 32F

07/20 21:27, , 33F
給原po 我誤會你了 XD
07/20 21:27, 33F

07/20 21:28, , 34F
另外我會想爆掉因為寫習慣driver外加stress test了..
07/20 21:28, 34F

07/20 21:28, , 35F
所以直覺思考都會避免stress下會爆掉的情況~~
07/20 21:28, 35F

07/20 21:31, , 36F
不過關於會一直出現excpetion的程式.. 還是很奇怪阿
07/20 21:31, 36F

07/21 07:56, , 37F
這也不是個用了遞迴就會比較好寫的題目
07/21 07:56, 37F

07/21 07:56, , 38F
喜歡用個效率差, 寫法難懂, 又有 overflow 風險的方法
07/21 07:56, 38F

07/21 07:57, , 39F
講你兩句又不承認, 那我還真不知道該說什麼好了
07/21 07:57, 39F

07/21 07:57, , 40F
用迴圈從後面跑回來真的有這麼難嗎 ?
07/21 07:57, 40F
文章代碼(AID): #1CH5-cWv (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1CH5-cWv (Soft_Job)