蜻蜓
提示 登录 注册 提示 13973/2 08年12月5日 周五 6点04分 站标
引用(0)请拷贝:
大类:[科技经济] → 版面:[科经茶社]
1 2 共2页29 楼主帖分页树展关闭目录
O 【原创】如何REVERSE一个C STRING? (老成都;字339 阅1593 2007-02-18 17:01:26
。◆此用户发言已被屏蔽◆
O 这问题最近先后出现在CISCO,ERICSSION,F5的面食中 (老成都;字57 阅296 2007-03-29 18:30:52
O 至少要一个临时变量吧! (无斋主人;字88 阅629 2007-03-29 16:53:41
。。O 说实在的,大部分面试编程题都是面试人在壮自己的胆, (老成都;字281 阅325 2007-03-29 18:44:16
。。O complier自己安排的不算。 (大大的熊;字0 阅195 2007-03-29 17:10:09
。。。O 请看http://www.cchere.com/article/ (无斋主人;字43 阅272 2007-03-29 18:28:20
。。。。O 在实际工作中,任何显式调用递归的都不是好方法,因为 (老成都;字248 阅293 2007-03-29 19:13:39
。。。。O 哈哈。。你真认真。。 (大大的熊;字14 阅173 2007-03-29 19:12:56
O 想起来SICP里有道练习题就是这个 (sunsol;字72 阅916 2007-02-20 10:46:35
O 哈,我也问个算法。。。 (面壁;字218 阅1105 2007-02-20 03:59:29
。。O 这个我以前写过 (泰让;字184 阅960 花 1 2007-02-20 07:50:39
。。。O 太谢谢了 (面壁;字192 阅826 2007-02-20 12:18:43
O 这东西,说的是不用什么临时变量。。。 (大大的熊;字30 阅876 2007-02-19 19:25:23
O 说到递归,我就想出来了 (林小筑;字223 阅1038 花 1 2007-02-18 18:48:46
。。O 老成都的code的复杂度不是变成了 (tingsanguo;字72 阅553 2007-03-29 01:13:26
。。。O 有那么高吗?n平方吧?我的倒是指数增长的 (林小筑;字0 阅516 2007-03-29 14:13:22
O 递归解法 (泰让;字91 阅1082 花 2 2007-02-18 18:47:22
1O【原创】如何REVERSE一个C STRING? 老成都 2007-02-18 17:01:26
我有个朋友面试遇到了这个问题来问我,我做了一阵没做出来.关键是还有个附加要求,不得使用任何函数和临时变量, 也就是说reverse_string(char *p)里面唯一能出现的变量就是p,不能有str_len之类的函数和INT INDEX之类的临时变量,也不能出现reverse_string之外的函数.

我知道用递归可以把它反向显示出来(这显示出来其实已不对了,因为要用PUTCHAR),但没办法把它放回p.

AleaJactaEst 选转。
2◆此用户发言已被屏蔽◆
2O这问题最近先后出现在CISCO,ERICSSION,F5的面食中 老成都 2007-03-29 18:30:52
要换工作的河友一定先把它背下来.

是的,编译器隐含的不算.
2O至少要一个临时变量吧! 无斋主人 2007-03-29 16:53:41
否则用递归好像也没法做。

再说递归比用临时变量,无论从时间上还是空间上消耗的更多啊!

3O说实在的,大部分面试编程题都是面试人在壮自己的胆, 老成都 2007-03-29 18:44:16
要真的是高手,问十分钟就够了,那里用的着作题.

为什么要出题考你,不就是你干过的我不清楚,问多了自己都心虚,那就叫你先做题,你做不出来俺胆不就壮了?!

象这个题目,即使是合格的SENIOR在十分钟内也几乎不可能完全答出来.明显就是杀你的威风的.我不相信类似的题目在那些公司上班的人能随时做出来.

3Ocomplier自己安排的不算。 大大的熊 2007-03-29 17:10:09
4O请看http://www.cchere.com/article/ 无斋主人 2007-03-29 18:28:20

链接出处


5O在实际工作中,任何显式调用递归的都不是好方法,因为 老成都 2007-03-29 19:13:39
这可能造成一些和资源有关的CRASH.比如这个调用递归的REVERSE,它可能对短的STRING可以,对长的CRASH. 她甚至可能对同样长的STRING有时CRASH有时不CRASH,取决于你掉它时的位置(这点在EMBEDDED的环境下特别重要),我完全同意你的看法.

问题是人家就这样把题出出来了.

5O哈哈。。你真认真。。 大大的熊 2007-03-29 19:12:56
他们就是玩呀。
2O想起来SICP里有道练习题就是这个 sunsol 2007-02-20 10:46:35
用LISP的方法来做的话一般都是用尾递归的
不过C好像无法不用临时变量模拟cdr
2O哈,我也问个算法。。。 面壁 2007-02-20 03:59:29
前些天算两个7两个4(+-*/),怎么让它等于24,便想写个code:
任意给4个数,输出是否等于24,如果等于,给出怎么得到的结果。

忙活了半天,没有一个自己满意的算法和code,现请教一下,给个算法就行,谢谢了。 (不喜欢删掉好了)
3O这个我以前写过 花 1 泰让 2007-02-20 07:50:39
思路是生成所有可能的四则运算表达式树,然后依次检查结果。
可以用逆波兰方式来表达,这样不用考虑括号和优先级的问题
需要注意的是,有时候中间结果非整数,可能要用写一个有理数类来存放结果。
4O太谢谢了 面壁 2007-02-20 12:18:43
考试太忙,匆匆献花。
小弟不是学计算机的,逆波兰这个算法第一次听说,要搞懂得花些时日(哈,俺是出了名的慢)。不过听你介绍,不用考虑不用考虑括号和优先级的问题,确实是我需要的算法!日后还要请教。
2O这东西,说的是不用什么临时变量。。。 大大的熊 2007-02-19 19:25:23
帝归起来,用的空间多多了。。。
2O说到递归,我就想出来了 花 1 林小筑 2007-02-18 18:48:46
叙述算法太麻烦,举例吧,一看就明白
12345
15432 -- 递归
51432 -- 交换前两个
51234 -- 再递归
54321 -- 再再递归

不用额外变量交换两个变量的值,相信您会的哦?

update: 才看到楼下的,比我的简单,更重要的是复杂度好多了。
3O老成都的code的复杂度不是变成了 tingsanguo 2007-03-29 01:13:26
n factorial了吗?是不是原地reverse只能让时间复杂度增加到那么大?谢谢


4O有那么高吗?n平方吧?我的倒是指数增长的 林小筑 2007-03-29 14:13:22
2O递归解法 花 2 泰让 2007-02-18 18:47:22
如果P或者P+1为0,直接返回
否则递归处理P+1;
然后用循环将P依次后移1位,直到遇到0为止
返回P
【原创】如何REVERSE一个C STRING? 1 2 共2页

点这里自动刷新◆ 或者 完整聊天


Copyright © cchere 西西河 feed 西西河规 版主规范 帮西西河 帮助(FAQ) 版面介绍 发帖特殊效果 网站地图 关于西西河