- 浏览: 1229247 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (718)
- HTML (13)
- JS基础 (23)
- JS应用 (40)
- AJAX (6)
- JSP相关 (12)
- JAVA基础 (52)
- JAVA应用 (74)
- APPLET (11)
- SWING\RCP (2)
- JAVA反射 (6)
- 设计模式 (26)
- 数据库设计 (20)
- Struts (35)
- Struts2 (12)
- Spring (22)
- Hibernate (45)
- Ibatis (18)
- mybatis (3)
- SSH (8)
- UML (5)
- WebService (3)
- XML (16)
- Log4j (7)
- WEB容器 (26)
- 数据结构 (36)
- Linux (34)
- Ruby on Rails (1)
- 其它技术 (27)
- IDE配置 (15)
- 项目实战 (2)
- Oracle (69)
- JAVA报表 (7)
- Android学习 (2)
- 博客链接 (1)
- 网络基础 (1)
- WEB集群 (1)
- .Net开发 (11)
- PB (4)
- 系统构建 (15)
最新评论
-
jnjeC:
牛逼啊哥们,讲得太好了
Maven仓库理解、如何引入本地包、Maven多种方式打可执行jar包 -
九尾狐的yi巴:
很好 感谢!
Itext中文处理(更新版) -
luweifeng1983:
有用的,重启一下嘛。
设置eclipse外部修改文件后自动刷新 -
Master-Gao:
设置了也不管用,怎么破呢?
设置eclipse外部修改文件后自动刷新 -
aigo_h:
锋子还有时间写博客,还是很闲哈!
Add directory entries问题
今天去参加了微软的一个外包的公司的招聘,当然,这个招聘的公司不在国内,不过好在出人意料的是这个公司竟然在武汉来招聘了,我的一个非常优秀的
c++的朋友被应聘了,然后他极力推荐我去参加应聘,我第一次去,那个boss(老外)非常赞赏我,因为我的简历的原因,原来做了Shangducms这
个项目并且还出了一本书,所以那个老外非常赞赏我,并且直接安排我到最后的面试。
话说回来,这个老外是一个hr,但是是微软的员工并且长达10年的工龄,这个老外对算法和素质要求的比较高(其实国外的公司都差不多是这样),然后这个老外出了两个题,一个题是编程题,另一个是设计题,这两个题在各位高手眼中肯定比较简单,这两个题是这样的。
1.对字符串进行排序,用任意一种编程语言来实现,不能使用现有的类,在排序中,字符串“Bc”,“Ad”,“aC”,“Hello”,“X man”,“little”,“During”,“day”能够排序成 “Ad”,"aC",“Bc”,“During”,“day”,“Hello”,“little”,“Hello”,也就是说,在排序的过程并不是传统的 按照字符串排序,在排序中还需要将小写字母一并排序,也就是说a字符串要在B或b之前。
2.设计一个图书管理系统,无需实现,只需要写清思路就可以了。
考试也很轻松,出了不能用QQ,MSN以外,其他的什么baidu啊google啊都可以查,本来拿到这两个题的时候觉得非常的简单(当时的感觉那是相当 的简单),但是没想到做了2-3个小时还没有做出来,要不就是出现错误要不就是无法排序,结果只好被老外说“I'm sorry”了。
后来回来了之后,感觉非常的郁闷,其实也不是特别郁闷,但是觉得自己水平不错嘛,这样的工作当然是唾手可得了,没想到马失前蹄,感觉不爽,就和朋友玩了几 个小时游戏,后来坐回电脑前,改不了程序员的“劣根性”,非要搞出个所以然来,结果没出20分钟就搞定了,真是很郁闷!因为如果做不出来就算了,结果自己 做20分钟就做出来了,在面试时却没有做出来,我想除了紧张以外,更多的还是基础知识不牢固的原因,下面分享一下自己的代码。
其实第一题很简单,就是一个排序,随便用什么算法都可以,直接冒泡就可以,不过难点在于比较字符串中间的字符的ASCII的值,首先写其他代码,初始化一下,示例代码如下所示。
public string[] str = { "dad", "bood","bada","Admin","Good","aete","cc","Ko","Beta","Could"};
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";
for (int i = 0; i < str.Length; i++)
{
textBox1.Text += str[i].ToString()+" ";
}
}
上面这串代码很简单,就是先声明一个数组咯,然后在窗体加载时进行数组的遍历(原题是从文件中读取一串字符串转化为数组,这个简单,固可以忽略),当用户单击排序按钮时,进行排序,这里也很简单,示例代码如下所示。
Code
private void button1_Click(object sender, EventArgs e)
{
Sort(str);
textBox1.Text = "";
for (int i = 0; i < str.Length; i++)
{
textBox1.Text += str[i].ToString() + " ";
}
}
当用户单击按钮时,使用排序Sort方法排序字符串然后清空现有的内容再呈现在控件中,这里关键的就是Sort方法的实现,Sort方法的实现很简单,直 接冒泡就可以了,但是注意的是,这里是字符串,而不是数字,冒泡的话需要判断大小,如果使用C#函数,则可以很容易的实现Sort方法,示例代码如下所 示。
Code
private void Sort(string[] s)
{
for (int i = 0; i < s.Length; i++)
{
for (int j = 0; j < s.Length - i-1; j++)
{
if (String.CompareOrdinal(s[j], s[j + 1]) > 0)
{
string tem = s[j];
s[j] = s[j+1];
s[j + 1] = tem;
}
}
}
}
好了,如果使用String.CompareOrdinal方法当然能够快速的排序,但是这里有一个问题,先不说这里不能用自带的类,就说这个题目 吧,CompareOrdinal方法还是无法实现需求,但是这里给了一个思路,使用冒泡排序进行排序,可以在函数中实现字符串的大小的对比,就好像数字 的对比一样,这里就该一下,使用自己的方法,示例代码如下所示。
Code
private void Sort(string[] s)
{
for (int i = 0; i < s.Length; i++)
{
for (int j = 0; j < s.Length - i-1; j++)
{
if (compare(s[j], s[j + 1]) > 0)
{
string tem = s[j];
s[j] = s[j+1];
s[j + 1] = tem;
}
}
}
}
上面的代码使用自己的compare方法进行判断,其实现思路基本同String.CompareOrdinal相同再加以改进就可以了,这是最重要的方法,因为这个方法直接关系到排序,示例代码如下所示。
Code
private int compare(string str1, string str2)
{
int x=0;
for (int i=0,j=0; (i < str1.Length)&&(j <str2.Length); i++,j++)
{
int s1 = (int)str1[i];
int s2 = (int)str2[j];
//insert
if (s1 >= 97)
{
s1 -= 32;
}
if (s2 >= 97)
{
s2 -= 32;
}
//end
if (s1 > s2)
{
x = 1;
break;
}
else if (s1 < s2)
{
x = 0;
break;
}
else if (s1 == s2)
{
if ((int)str1[i] > (int)str2[j])
{
x = 1;
break;
}
else
{
x = 0;
break;
}
}
}
return x;
}
在进行compare方法的实现时,首先要确定思想,对字符串进行排序,首先要判断两个字符串的第一个字母的ASCII码,如果相等,就判断字符串的下一 个字母的ASCII,以此类推,但是这里注意的是a的ASCII要比Z要大,所以在判断前还需要判断是否为小写字母(这里的方法比较蠢,呵呵),如果是小 写,转换成大写进行判断,同样为了实现String.CompareOrdinal方法的效果,可以返回一个int类型的值进行判断.
这样,整个排序就完成了,做完之后,我自己真的是感慨良深啊,自己做了多年的.NET开发,却真正意义上并不太懂How the Program Works,老外在最后也对我说了“虽然你懂很多ASP.NET,WCF,WPF等等知识,但是最基础的却掌握的不好,相比之下,我建议你在这几个月的时 间里多学习一下基础,当你的基础牢固了之后,一切都变得简单了(Everything gonna to be easy)”,确实,当时做不出来最郁闷的并不是题目本身,而是忽然感觉到自己学习的过程有点像揠苗助长一样,应用做多了,反而基本的都忘记了。
其实,这篇文章并不是最出彩的文章,也不是技术含量最深的文章,而且这个题目肯定有很多高手看一眼就能够做出来,但是我写这篇文章,只是想分享一下自己的 经历,真的,其实越到后来越发现,基础往往是最重要的,这让我想起几个月前讨论的基础是不是最重要的话题时,很多人都说只要工作的时候翻翻书就可以了,当 时我也是这么想,想着不会了翻书找一下就行了,没想到优秀是一种习惯,熟练的掌握基础才是编写高质量代码的基本要求。
最后在这里分享一下一点总结:
1.面试千万不要紧张,特别是face to face的时候,还特别是老外面试,千万不要紧张,否则水平还没有平时的十分之一。
2.多多锻炼一下自己的基本功,无论是在校学生(像我还有几个月时间),还是上班的同学(我也工作了几年),都应该好好把握时间多练习基本功,在校生有很多的机会可以练,而参加工作的同学也需要“温故而知新”。
3.优秀是一种习惯,无论是在解决问题上还是在编码风格上,都应该按照最好的标准要求自己(老外还说看代码主要是要看风格)。
最后在文章的结尾希望能够和各位高手一起分享Code的乐趣和经验。
4.可以上www.izuren.com去看看面试题
分享一句不想关的话,人本是人,不必刻意去做人,世本是世,无须精心处世。
话说回来,这个老外是一个hr,但是是微软的员工并且长达10年的工龄,这个老外对算法和素质要求的比较高(其实国外的公司都差不多是这样),然后这个老外出了两个题,一个题是编程题,另一个是设计题,这两个题在各位高手眼中肯定比较简单,这两个题是这样的。
1.对字符串进行排序,用任意一种编程语言来实现,不能使用现有的类,在排序中,字符串“Bc”,“Ad”,“aC”,“Hello”,“X man”,“little”,“During”,“day”能够排序成 “Ad”,"aC",“Bc”,“During”,“day”,“Hello”,“little”,“Hello”,也就是说,在排序的过程并不是传统的 按照字符串排序,在排序中还需要将小写字母一并排序,也就是说a字符串要在B或b之前。
2.设计一个图书管理系统,无需实现,只需要写清思路就可以了。
考试也很轻松,出了不能用QQ,MSN以外,其他的什么baidu啊google啊都可以查,本来拿到这两个题的时候觉得非常的简单(当时的感觉那是相当 的简单),但是没想到做了2-3个小时还没有做出来,要不就是出现错误要不就是无法排序,结果只好被老外说“I'm sorry”了。
后来回来了之后,感觉非常的郁闷,其实也不是特别郁闷,但是觉得自己水平不错嘛,这样的工作当然是唾手可得了,没想到马失前蹄,感觉不爽,就和朋友玩了几 个小时游戏,后来坐回电脑前,改不了程序员的“劣根性”,非要搞出个所以然来,结果没出20分钟就搞定了,真是很郁闷!因为如果做不出来就算了,结果自己 做20分钟就做出来了,在面试时却没有做出来,我想除了紧张以外,更多的还是基础知识不牢固的原因,下面分享一下自己的代码。
其实第一题很简单,就是一个排序,随便用什么算法都可以,直接冒泡就可以,不过难点在于比较字符串中间的字符的ASCII的值,首先写其他代码,初始化一下,示例代码如下所示。
public string[] str = { "dad", "bood","bada","Admin","Good","aete","cc","Ko","Beta","Could"};
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "";
for (int i = 0; i < str.Length; i++)
{
textBox1.Text += str[i].ToString()+" ";
}
}
上面这串代码很简单,就是先声明一个数组咯,然后在窗体加载时进行数组的遍历(原题是从文件中读取一串字符串转化为数组,这个简单,固可以忽略),当用户单击排序按钮时,进行排序,这里也很简单,示例代码如下所示。
Code
private void button1_Click(object sender, EventArgs e)
{
Sort(str);
textBox1.Text = "";
for (int i = 0; i < str.Length; i++)
{
textBox1.Text += str[i].ToString() + " ";
}
}
当用户单击按钮时,使用排序Sort方法排序字符串然后清空现有的内容再呈现在控件中,这里关键的就是Sort方法的实现,Sort方法的实现很简单,直 接冒泡就可以了,但是注意的是,这里是字符串,而不是数字,冒泡的话需要判断大小,如果使用C#函数,则可以很容易的实现Sort方法,示例代码如下所 示。
Code
private void Sort(string[] s)
{
for (int i = 0; i < s.Length; i++)
{
for (int j = 0; j < s.Length - i-1; j++)
{
if (String.CompareOrdinal(s[j], s[j + 1]) > 0)
{
string tem = s[j];
s[j] = s[j+1];
s[j + 1] = tem;
}
}
}
}
好了,如果使用String.CompareOrdinal方法当然能够快速的排序,但是这里有一个问题,先不说这里不能用自带的类,就说这个题目 吧,CompareOrdinal方法还是无法实现需求,但是这里给了一个思路,使用冒泡排序进行排序,可以在函数中实现字符串的大小的对比,就好像数字 的对比一样,这里就该一下,使用自己的方法,示例代码如下所示。
Code
private void Sort(string[] s)
{
for (int i = 0; i < s.Length; i++)
{
for (int j = 0; j < s.Length - i-1; j++)
{
if (compare(s[j], s[j + 1]) > 0)
{
string tem = s[j];
s[j] = s[j+1];
s[j + 1] = tem;
}
}
}
}
上面的代码使用自己的compare方法进行判断,其实现思路基本同String.CompareOrdinal相同再加以改进就可以了,这是最重要的方法,因为这个方法直接关系到排序,示例代码如下所示。
Code
private int compare(string str1, string str2)
{
int x=0;
for (int i=0,j=0; (i < str1.Length)&&(j <str2.Length); i++,j++)
{
int s1 = (int)str1[i];
int s2 = (int)str2[j];
//insert
if (s1 >= 97)
{
s1 -= 32;
}
if (s2 >= 97)
{
s2 -= 32;
}
//end
if (s1 > s2)
{
x = 1;
break;
}
else if (s1 < s2)
{
x = 0;
break;
}
else if (s1 == s2)
{
if ((int)str1[i] > (int)str2[j])
{
x = 1;
break;
}
else
{
x = 0;
break;
}
}
}
return x;
}
在进行compare方法的实现时,首先要确定思想,对字符串进行排序,首先要判断两个字符串的第一个字母的ASCII码,如果相等,就判断字符串的下一 个字母的ASCII,以此类推,但是这里注意的是a的ASCII要比Z要大,所以在判断前还需要判断是否为小写字母(这里的方法比较蠢,呵呵),如果是小 写,转换成大写进行判断,同样为了实现String.CompareOrdinal方法的效果,可以返回一个int类型的值进行判断.
这样,整个排序就完成了,做完之后,我自己真的是感慨良深啊,自己做了多年的.NET开发,却真正意义上并不太懂How the Program Works,老外在最后也对我说了“虽然你懂很多ASP.NET,WCF,WPF等等知识,但是最基础的却掌握的不好,相比之下,我建议你在这几个月的时 间里多学习一下基础,当你的基础牢固了之后,一切都变得简单了(Everything gonna to be easy)”,确实,当时做不出来最郁闷的并不是题目本身,而是忽然感觉到自己学习的过程有点像揠苗助长一样,应用做多了,反而基本的都忘记了。
其实,这篇文章并不是最出彩的文章,也不是技术含量最深的文章,而且这个题目肯定有很多高手看一眼就能够做出来,但是我写这篇文章,只是想分享一下自己的 经历,真的,其实越到后来越发现,基础往往是最重要的,这让我想起几个月前讨论的基础是不是最重要的话题时,很多人都说只要工作的时候翻翻书就可以了,当 时我也是这么想,想着不会了翻书找一下就行了,没想到优秀是一种习惯,熟练的掌握基础才是编写高质量代码的基本要求。
最后在这里分享一下一点总结:
1.面试千万不要紧张,特别是face to face的时候,还特别是老外面试,千万不要紧张,否则水平还没有平时的十分之一。
2.多多锻炼一下自己的基本功,无论是在校学生(像我还有几个月时间),还是上班的同学(我也工作了几年),都应该好好把握时间多练习基本功,在校生有很多的机会可以练,而参加工作的同学也需要“温故而知新”。
3.优秀是一种习惯,无论是在解决问题上还是在编码风格上,都应该按照最好的标准要求自己(老外还说看代码主要是要看风格)。
最后在文章的结尾希望能够和各位高手一起分享Code的乐趣和经验。
4.可以上www.izuren.com去看看面试题
分享一句不想关的话,人本是人,不必刻意去做人,世本是世,无须精心处世。
发表评论
-
计算成本价及要打到某一价位需要的投入
2013-08-19 10:44 1076package com.lwf.test; impor ... -
Acer Aspire 4720 Fn键坏了,屏幕亮度不够问题的解决
2013-08-17 22:12 1531笔记本电脑:Aspire 4720 ... -
使用远程连接桌面后总是黑屏的问题
2013-01-26 11:42 1700启动远程的任务管理器使用组合键Ctrl+Alt+End,于是打 ... -
XP系统文件夹图标显示成快捷方式了
2012-12-27 20:47 938WindowsXP中的图标出现混乱,甚至图标文件坏了而无法正常 ... -
如何将outlook express通讯簿导入到office的Outlook中
2011-07-25 12:22 877如何将outlook express通讯簿导入到office的 ... -
Excel字符串截取函数
2011-05-04 13:15 4566引自:http://dl.iteye.com/uplo ... -
Excel第一行下拉三角形
2011-03-02 15:50 1793选中第一行的一个格子,然后选择菜单“Data --> F ... -
Excel文件下拉框是怎么实现的?
2010-12-23 11:00 1297Excel文件下拉框是怎么实现的? 1、选中适用下拉框 ... -
怎样彻底删除"System Volume Information"病毒
2010-02-25 14:23 4385System Volume Information是系 ... -
任务栏出现两个重复图标的解决办法
2010-02-25 14:05 2042转:http://redking.blog.51cto.com ... -
win32.Jadtre.B解决办法详解[免删除]
2010-02-25 11:16 2758本文转自:http://www.life63.com/Blog ... -
解决xp系统进不了安全模式的问题
2010-02-24 13:35 2567最近发现,Windows XP系统进不了安全模式的挺多,终 ... -
利用outlook自动回复邮件
2007-05-11 10:51 1563Outlook Express是一个功能十分强大的邮件收发软件 ... -
Excel使用技巧
2008-01-09 14:50 35158Excel 使用技巧 在工作当中用电子表格 ... -
两个排序算法比较
2008-05-26 16:41 973一.起泡法排序起泡法排序:掌握两个重点,(1)N个数排序需要进 ... -
!cvs配置
2009-01-09 17:20 810http://www.redsaga.com/CVS_newb ... -
签证:2012年实现不再“一票难求”
2009-01-13 17:04 877狗屁中国铁路局年年丢B,年年到了春运就拿2012年不再“一票难 ... -
论程序员的学习!
2009-01-21 14:59 811我有一个缺点:那就是做事总是不够专注,表现在学习上那就是不够坚 ... -
牛人的笔记本拆装-来自百度贴吧
2009-01-22 14:58 9752008-10-26 00:25 ... -
程序员的十层楼
2009-02-17 15:39 914http://softwareblogs-zho.intel. ...
相关推荐
文档中的内容主要涉及了两部分...在华为的校园招聘过程中,这样的机试题和面试经历能够帮助公司评估候选人的实际编程能力和问题解决能力。对于准备参加此类面试的求职者来说,熟练掌握这些基础知识和技巧是非常重要的。
在面试过程中,智者不仅要有勇,更要有恒心,坚持不懈,才能在竞争中脱颖而出,成为真正的面试达人。 总的来说,湖南公务员面试的成功在于全面的准备,从专业知识、面试技巧到心理素质的提升,每一个环节都需要精心...
本文从面试前的准备工作 (6 个问题)、如何介绍你的工作经历(7 个问题)、如何回答主考官的各种问题(12 个问题)、薪酬谈判与面试结束时的提问艺术(5 个问题)四个部分为你解读面试官常问的30个问题。...
作者通过分享自己的面试经历,希望能够帮助其他应聘者更好地准备面试,提高面试的成功率。 描述分析 文章的描述部分为空,说明文章的主要内容是作者的面试经验分享。 标签分析 文章的标签是“资源分享达人 文档 ...
- 准备面试材料:带上简历、相关证书的原件和复印件,以便面试时展示自己的经历和能力。 - 守时:准时到达面试地点,迟到会给面试官留下不良印象。 - 礼仪规范:注意礼貌,如进门前敲门,这些小细节体现出应聘者...
本文主要探讨了如何从多角度优化个人经历的描述,使之更具吸引力,帮助求职者顺利通过简历筛选并赢得面试官的青睐。 首先,撰写经历时应该尽可能具体。避免过于模糊的描述,因为这可能会让面试官认为你缺乏实际经验...
经验缺陷则可能因工作经验不足或经历局限而成为障碍。认识到这些缺陷后,面试者需要积极地去改善它们,并且在面试中展现出自己积极的态度和对工作的热情。 最后,文档鼓励面试者要对自己有信心,选择适合自己的用人...
活动包括播放歌曲、讨论名人经历、分享个人挫折经验,以及排练应对挫折的小品,目的是提高学生的抗挫能力,培养他们积极面对困难的意志品质。 总的来说,这些面试材料展示了心理健康教育课程的丰富性和实用性,旨在...
3. **工作经验**:在描述工作经历时,应强调具体职责和成果,如宁先生提到的多次出国商务旅行,这表明他的工作涉及到广泛的国际交流。 4. **英语能力**:外贸业务员通常需要具备优秀的英语听说读写能力。宁先生通过...
总结来说,一个成功的研究生面试英文自我介绍应包括个人基本信息、个人特质、实践经历、深造动机及未来规划,这些要素综合展现了你的专业素养和个人魅力,有助于在面试中留下深刻印象。在准备面试时,应确保每个部分...
本文是作者基于自己的面试经历,总结出的一些宝贵的教训和经验。文章主要分为三部分:第一部分是作者的面试经历,第二部分是作者对面试官的问题回答的分析和反思,第三部分是作者总结的教训和经验。 在第一部分中,...
根据压缩包子文件的文件名称“面经”,我们可以推断这是一份集成了众多面试经验的文档,可能包含了面试者的亲身经历、面试问题的分类整理以及解题思路。这份资料可能分为多个部分,如基础知识、进阶技术、实战案例、...
对于每个问题,关键是要提前准备,理解自己的经历如何与应聘职位相匹配,并且能够用清晰、有力的语言表达出来。同时,保持诚实、积极的态度,以及良好的沟通技巧,都是赢得面试官青睐的重要因素。记住,面试不仅是...
求职信不仅仅是对简历的补充,更是你与雇主建立联系的桥梁,它应该能引起雇主的兴趣,进而增加获得面试机会的可能性。 **求职信的目的** 求职信的主要目标是将你的个人特质、专业技能和对职位的热情清晰地传达给...
此外,作为"资源分享达人",这个压缩包还可能包含其他有用的资料,如行业标准的简历写作指南、面试常见问题及答案、以及如何准备技术面试的建议。这些额外资源将帮助你全面准备求职过程,提升你的竞争力。 总之,...
- Shuffle和Sort过程:在Map和Reduce之间,数据会经历shuffle(重新分区)和sort(排序)步骤。 4. **YARN**: - YARN全称为Yet Another Resource Negotiator,是Hadoop的资源管理系统,取代了早期版本中的...
作者通过分享自己的面试经历,总结了腾讯产品岗与运营岗面试的要点和经验教训。 知识点一:网申与笔试 * 腾讯的网申过程中,笔试机会是必不可少的,但HR筛选依然是基于简历,而不是笔试成绩。 * 笔试题型多样,...