来上海两周了,面试及面试题

到了上海已经两周了,过的还真是快,第一周熟悉环境,第二周开始看书、面试。已经面试了两个公司,经历了四轮面试了,发现自己在各个方面都有很多不足的地方,针对这些来看书学习,进步挺大的,这也正是我辞职来上海的目的。有一个面试已经到了最后一轮,要直接和美国那边的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、从一组数组中(多于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
原文地址:https://www.cnblogs.com/coderwood/p/1761455.html