惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

A
About on SuperTechFans
C
Cybersecurity and Infrastructure Security Agency CISA
N
News and Events Feed by Topic
C
Cisco Blogs
Cisco Talos Blog
Cisco Talos Blog
A
Arctic Wolf
Scott Helme
Scott Helme
P
Palo Alto Networks Blog
S
Schneier on Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Tor Project blog
量子位
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
B
Blog RSS Feed
NISL@THU
NISL@THU
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
AWS News Blog
AWS News Blog
爱范儿
爱范儿
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
Security Archives - TechRepublic
Security Archives - TechRepublic
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
Cloudbric
Cloudbric
aimingoo的专栏
aimingoo的专栏
L
Lohrmann on Cybersecurity
TaoSecurity Blog
TaoSecurity Blog
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Hacker News: Ask HN
Hacker News: Ask HN
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
S
Security @ Cisco Blogs
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cyber Attacks, Cyber Crime and Cyber Security
G
GRAHAM CLULEY
P
Proofpoint News Feed
V
V2EX
Martin Fowler
Martin Fowler
C
CERT Recently Published Vulnerability Notes
Attack and Defense Labs
Attack and Defense Labs
C
CXSECURITY Database RSS Feed - CXSecurity.com
The Cloudflare Blog
SecWiki News
SecWiki News
罗磊的独立博客
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
小众软件
小众软件
The Last Watchdog
The Last Watchdog

博客园 - gogogo

CUDA 啊CUDA 精力管理【转载】 管理你的精力,而不是时间【转载】 从能力到素质 关乎自我实现 长期呆在电脑旁边,造成头痛,精神很差的解决办法 Characteristics of a software architect 【转载】 The process of software architecting .NET中几种基本的线程同步方法 Visual C++线程同步技术剖析 (转载) Win32 进程间通信的分析与比较 专注,专注,还是专注 <东京爱情故事>评论3 <东京爱情故事>评论2 使用微软消息队列实现C#进程间通信 Windows 进程之间通讯的几种方法 东京爱情故事 The Motivation of Learning English 收藏: Resources for Updater Application Block
微软外包笔试有感
gogogo · 2009-01-15 · via 博客园 - gogogo

微软一共出了三道笔试题:

1.反转单词 (hello -> olleh)
2.反转句子 (hello world -> world hello)
3.给一字符串模式替换函数,找BUG

刚看到这三道题,心中暗喜,因为这三道题思路已经很清楚了,剩下的就是把思路实现出来.

不得不承认,我范了大多数新程序员眼高手低的问题.

第一题 : 反转单词,我的实现很简单,在对输入进行NULL值检验后,就开始循环将单词中的字母前后对调,我使用最简单的数组下标法. 并且在进行字母对调时调用了自己写的 swap 函数,第一题没有什么问题. 后来回去后进行上机检验时,也验证了我的解是正确的了,也许值得优化的就是使用指针能够提高一些速度.

第二题 :
   反转句子,此题有点意思,我的实现思路很清楚,首先将句子中的单词抽取出来放入一个字符串数组,然后对生成的字符串数组,逆序写到新的字符串 Buffer 即可.
    思路虽然清楚,可是在实现中范了几个小错误:
    1.在分配字符串数组方面,我的代码里分配了一个足够大的数组,很浪费内存,其实应该写一个计算单词数量的子函数,来决定字符串数组的大小.
    2.在扫描原串的过程中,如果发现空格,即将单词写入字符串数组,可是这样就会漏掉最后一个单词.
    3.在将字符串数组拼接为新字符串时,我又范了,忽略空格位置的问题.
    4.实现过程中,我调用了自己的函数 strcpy(char* src,char* target,int len),可是却没有去实现.
 
    虽然也能够完成反转的功能,可是浪费了很多内存,在网上查找比较优秀的解决办法是从后向前反转,这样就不用额外浪费 Buffer 内存块.

第三题:找BUG
      因为找不到原搞,我无法确定是否找全了BUG,不过我相信我找的BUG,确实是个BUG.

总结:
   微软的面试题总体不难,可是要把他做好,充分考虑运行效率和内存等因素,想写好,还是不容易的.由于在经常在企业里做应用开发,当大量的快速应用开发大量铺面而来时,为了快速响应用户需求,我们常常会忽略将软件做精的要求,微软一直秉乘,严谨,务实,精细的态度,着实让人佩服.面试没有通过,心服口服.但我相信我会在未来的机会中用精细,务实的心态要求自己.