PCDVD數位科技討論區

PCDVD數位科技討論區 (https://www.pcdvd.com.tw/index.php)
-   七嘴八舌異言堂 (https://www.pcdvd.com.tw/forumdisplay.php?f=12)
-   -   C 語言的測驗題 (https://www.pcdvd.com.tw/showthread.php?t=1088332)

邪神 2015-09-26 03:36 PM

程式寫不好才會去背這種題目吧...
基本的優先順序分得出來就好了(+-*/||&&!)

現在都推廣多用括號
直接用運算子不是不行,但是在合作做專案的時候
寫出來的程式不是只有自己在看

LR2001 2015-09-26 04:19 PM

引用:
作者erai
此職缺是要記憶力強的人?


主要負責維護一組 Parser Generator,由 C 寫的 NFA->DFA、LALR,和 DB Engine 的 index (b-tree+)、cache(hash、LRU)、log manager。

好吧!看來我很機車,當然這個職位的工作也很機車。

anderson1127 2015-09-26 04:36 PM

引用:
作者打工吧魔王大人
某大公司的筆試就是考了regular expression,
我就在想到底有哪個神人能寫這種語意不清的code讓大家來maintain ?
到底有那個做code review 會放這種code進資料庫?
:shock: :shock:

刁的公司總是有刁人的理由,當然也是衰敗的理由。


可否私下告知是那家公司?? 我下次好避開來...
regular expression 本身我並不認為是語意不清的東西 , 因為早年我常寫Perl 分析Log file
就是靠它來進行Log file的分析 , 不論LOG message 如何變化 , 總能夠落入我寫的pattern 裡

只是regular expression本身並不好學 , 我看過的幾本C/C++ 及 Java Programming的書
對這方面的著墨也都不深 , 有提到的也不多!! 目前看過的還是只有那本Perl Programming 駱駝書最為清楚!!

但是,看過的人也都很容易不小心進入夢鄉去了.... :D :D :D

那一個章節,還是要一邊搭配實例來驗證比較好,至少不會睡覺去.... :laugh:

邪神 2015-09-26 04:41 PM

引用:
作者anderson1127
可否私下告知是那家公司?? 我下次好避開來...

:laugh:
regular expression我都拿google到的來改
只是偶爾會用到而已,完全不會想弄到很精深

darkangel 2015-09-26 06:50 PM

1. 單純不讓 user 用 hex editor 修改的字串加解密,完全不需要用 RE,最簡單的方式就是把字元做 xor 運算,然後把運算完的字元跟第二個字元運算,再把運算完的字元跟第三個字元運算,直到遍歷整個字串(或整個檔案),要解密就是反過來做一次就可以,如果想要做不可逆的編碼就改用 or 即可。
2. 要使用 RE,也不需要自己寫,C 上面早就有很成功的 RE lib,如PCRE...
3. 大公司考 RE 很常見,尤其是以 linux 做開發的公司,像我們公司考題也有 RE (實際上是考 sed, awk 等),畢竟一個 linux 老手不會 RE 實在說不過去。
4. 如果該職位給薪不錯要找高手,那我覺得考運算元優先順序一點也不機車,當然不可能要求全部運算元都寫出來,能寫出個六七成就算過關了,當然更適合的做法是列出來讓考者排順序較佳。

我覺得比較白目的考題像是 a +++++ b, malloc(0),而且還特多公司愛考這種,我要看到就直接不寫,因為這種水準的公司不會是我想去的。

:think: :think: :think: :think: :think:

Adsmt 2015-09-26 10:06 PM

Regular Expression不同的工具會有不同的表示及規則,沒有一套標準。所以學起來會很亂。

像是有的用 "." 代表單一任意字元,有的用 "?"

有的 +, * 本身就代表重複字元,有的則只代表「重複」,也就是有的用 "+", 其實和另一種工具的 ".+" 同義。

還有更多複雜的相異處,所以考 Regular Expression 本身就不是一件很聰明的事,因為你不知道應徵者習慣用哪一種。反而有時候會難以判斷對方是真懂還是在亂寫。

真要考也要把使用哪一種規則的 Regular expression 講好,並把規則表附上。

oiqmlf 2015-09-26 10:25 PM

引用:
作者Adsmt
43

真要考也要把使用哪一種規則的 Regular expression 講好,並把規則表附上。


常用的人還是會常需要查規則表嗎?我雖然還蠻常用的但只記得幾個常用的符號,其他少用的完全沒記,真的要找麻煩的東西時還是要翻規則表來查查。

還有為什麼微軟的 word 不能支援用 regular expression 來做搜尋,wild card 真的是難用到爆,微軟是有什麼原因不能把regular expression 功能加進 word 嗎?明明很多文字編輯器都有這個功能的呀~

麵疙瘩 2015-09-26 10:33 PM

考技術應該著重在那些需要幾年培養的部分。 RE會需要很長時間培養嗎 我不清楚


懷念以前考智力測驗 圖像推演等

fpe 2015-09-26 10:54 PM

引用:
作者darkangel
1. 單純不讓 user 用 hex editor 修改的字串加解密,完全不需要用 RE,最簡單的方式就是把字元做 xor 運算,然後把運算完的字元跟第二個字元運算,再把運算完的字元跟第三個字元運算,直到遍歷整個字串(或整個檔案),要解密就是反過來做一次就可以,如果想要做不可逆的編碼就改用 or 即可。
...


蠻高招的 :like:

darkangel 2015-09-26 11:16 PM

引用:
作者Adsmt
Regular Expression不同的工具會有不同的表示及規則,沒有一套標準。所以學起來會很亂。

像是有的用 "." 代表單一任意字元,有的用 "?"

有的 +, * 本身就代表重複字元,有的則只代表「重複」,也就是有的用 "+", 其實和另一種工具的 ".+" 同義。



re 的 ? 從來都不是匹配 any character,從 posix re, extension, 或是 pcre 到各平台不同實作,所有的 ? 基本上都是 greedy switch,不是 match any character。

有人會說,那我 ls 的 ? 是 match any character 啊,* 是 match any string,很抱歉,那東西叫 glob/wildcard,別把這兩者搞混,真不懂我在講什麼,請在 linux 下執行 man 7 glob

http://man7.org/linux/man-pages/man7/glob.7.html
引用:
Note that wildcard patterns are not regular expressions, although they are a bit similar.


re 在各不同的實作裡,除了版本不同有所擴展之外,基本的 match rule 都是完全一樣。pcre > re ex > re,大都是一層層堆上去的,也就是 perl re 跟 pcre 提供最多功能,re ex 次之,posix re 最少。
至於各不同應用程式之間實作最大的差異主要是在於 \d 這類跳脫字元的定義,所以我寫 re 一直都會避開使用 \d 這類的寫法,而是用 [0-9] 這種標準寫法。

引用:
作者fpe
蠻高招的 :like:


因為我寫過啊... 我 20 年前用 x86 asm 寫的編碼程式就這樣寫,因為我不想要讓人用 pctools 改我程式的 copyright 字串,順便上點會當掉 debug/s-ice 的保護...


所有的時間均為GMT +8。 現在的時間是10:18 PM.

vBulletin Version 3.0.1
powered_by_vbulletin 2026。