到了上海已经两周了,过的还真是快,第一周熟悉环境,第二周开始看书、面试。已经面试了两个公司,经历了四轮面试了,发现自己在各个方面都有很多不足的地方,针对这些来看书学习,进步挺大的,这也正是我辞职来上海的目的。有一个面试已经到了最后一轮,要直接和美国那边的leader电话面试了,结果有临时通知说面试取消,等下周通知,郁闷。
做了两年维护,两年编程,收获颇多,遗憾也颇多。维护的东西基本忘光了,编程方面,从一开始就是做项目,遇到不会的就上网google或者查书、问别人,基本上没有自己动手做过任何事情,来上海一面试,发现自己什么都没有真正的搞明白,问什么都不会,抓紧看了两天书,后来的面试就比较顺利了。
这段时间要补起来一下的知识点:
1、.net框架和编程基础,已经熟悉了一遍,温习一下
2、 asp.net基础
3、算法基础
4、ado.net基础
5、针对英文面试的口语
上海是个大城市,有发展空间,需要自己去争取获得。
面试时遇到了几道算法题,今天有时间整理了一下,给大家看看,做个参考
1、 字符串处理:“i am a student” 转为 "i ma a tneduts"
1 #region 单词反转
2 /// <summary>
3 /// 单词反转
4 /// </summary>
5 /// <param name="array">待反转的字符串</param>
6 /// <returns>已反转的字符串</returns>
7 public static string ReverseWords(string array)
8 {
9 int arrLen = array.Length;
10 char[] strNew = new char[arrLen + 1];
11
12 //全部反转
13 for (int index = 0; index < arrLen; index++)
14 {
15 //strNew[index] = array[arrLen - 1 - index]; //单词在字符串中顺序反转变化、单词本身字符顺序不变
16 strNew[index] = array[index]; //单词在字符串中顺序不变,单词本身字符顺序反转
17 }
18 strNew[arrLen] = ' '; //为了复原最后一个单词,添加一个辅助空格
19
20 int iStart = 0, iEnd = 0;
21 char tmpChar;
22
23 //复原单词
24 for (int Index = 0; Index < arrLen+1 ; Index++)
25 {
26 //Index指向空格
27 if (strNew[Index] == ' ')
28 {
29 iEnd = Index - 1;
30 while (iStart < iEnd)
31 {
32 tmpChar = strNew[iStart];
33 strNew[iStart] = strNew[iEnd];
34 strNew[iEnd] = tmpChar;
35 iStart++;
36 iEnd--;
37 }
38 iStart = Index + 1;//跳过空格
39 }
40 else if (strNew[Index] == '!' || strNew[Index] == ',' || strNew[Index] == '.' || strNew[Index] == ';')
41 {
42 iStart = Index + 1;//跳过标点
43 }
44 }
45
46 //合成字符串
47 array = string.Empty;
48 for (int index = 0; index < strNew.Length - 1; index++)//去掉辅助的空格
49 {
50 array += strNew[index];
51 }
52 return array;
53 }
54 #endregion
2 /// <summary>
3 /// 单词反转
4 /// </summary>
5 /// <param name="array">待反转的字符串</param>
6 /// <returns>已反转的字符串</returns>
7 public static string ReverseWords(string array)
8 {
9 int arrLen = array.Length;
10 char[] strNew = new char[arrLen + 1];
11
12 //全部反转
13 for (int index = 0; index < arrLen; index++)
14 {
15 //strNew[index] = array[arrLen - 1 - index]; //单词在字符串中顺序反转变化、单词本身字符顺序不变
16 strNew[index] = array[index]; //单词在字符串中顺序不变,单词本身字符顺序反转
17 }
18 strNew[arrLen] = ' '; //为了复原最后一个单词,添加一个辅助空格
19
20 int iStart = 0, iEnd = 0;
21 char tmpChar;
22
23 //复原单词
24 for (int Index = 0; Index < arrLen+1 ; Index++)
25 {
26 //Index指向空格
27 if (strNew[Index] == ' ')
28 {
29 iEnd = Index - 1;
30 while (iStart < iEnd)
31 {
32 tmpChar = strNew[iStart];
33 strNew[iStart] = strNew[iEnd];
34 strNew[iEnd] = tmpChar;
35 iStart++;
36 iEnd--;
37 }
38 iStart = Index + 1;//跳过空格
39 }
40 else if (strNew[Index] == '!' || strNew[Index] == ',' || strNew[Index] == '.' || strNew[Index] == ';')
41 {
42 iStart = Index + 1;//跳过标点
43 }
44 }
45
46 //合成字符串
47 array = string.Empty;
48 for (int index = 0; index < strNew.Length - 1; index++)//去掉辅助的空格
49 {
50 array += strNew[index];
51 }
52 return array;
53 }
54 #endregion
2、从一组数组中(多于5个)取出最大的5个 不能使用排序
1 #region 取一个数组中最大的5个
2 /// <summary>
3 /// 取一个数组中最大的5个
4 /// </summary>
5 /// <param name="iArray">传入的数组</param>
6 /// <param name="Big5">返回的数组</param>
7 public static void GetBig5(int[] iArray, ref int[] Big5)
8 {
9 int length = iArray.Length;
10 for (int i = Big5.Length; i < length; i++)
11 {
12 Compare(ref Big5, iArray[i]);
13 }
14 }
15
16 private static void Compare(ref int[] Big5, int ivalue)
17 {
18 int min = Big5[0];
19 int index = 0;
20 for (int i = 0; i < Big5.Length; i++)
21 {
22 if (min > Big5[i])
23 {
24 min = Big5[i];
25 index = i;
26 }
27 }
28 if (ivalue > min)
29 {
30 Big5[index] = ivalue;
31 }
32 }
33 #endregion
2 /// <summary>
3 /// 取一个数组中最大的5个
4 /// </summary>
5 /// <param name="iArray">传入的数组</param>
6 /// <param name="Big5">返回的数组</param>
7 public static void GetBig5(int[] iArray, ref int[] Big5)
8 {
9 int length = iArray.Length;
10 for (int i = Big5.Length; i < length; i++)
11 {
12 Compare(ref Big5, iArray[i]);
13 }
14 }
15
16 private static void Compare(ref int[] Big5, int ivalue)
17 {
18 int min = Big5[0];
19 int index = 0;
20 for (int i = 0; i < Big5.Length; i++)
21 {
22 if (min > Big5[i])
23 {
24 min = Big5[i];
25 index = i;
26 }
27 }
28 if (ivalue > min)
29 {
30 Big5[index] = ivalue;
31 }
32 }
33 #endregion