日期:2014-05-17  浏览次数:20832 次

笔试题求解……
今天第一次笔试,两道算法题,跟考官说第二题真不会了,就直接被Pass掉了,说不用面试了,你不适合开发……郁闷到现在

第一题:两个Int数组,都是从小到大的排列,需要合并成一个新的数组,也是从小到大排列,请写出性能比较好的代码。
Fun(int a[m],int b[n])
{
}


第二题:已经有一个包括了多行文本的字符串。请写一个函数,能够输出字符串中最长的行和最短的行。如果最长和最短的不止一行,请输出最长和最短的多行。请写出性能比较好的代码。
Fun(string lines){
1、拆分成多行;
2、循环为每行计算长度,记录最大和最小行的位置;
3、打印输出

}
------最佳解决方案--------------------
引用:
继续努力。只要你愿意,你就行!

稍微修改了一下,这样可能要优雅一点:

        static void Main(string[] args)
        {
            string str = @"aaaa
bbbbb
cccccccccc
dd
dd
eeee";
            string[] s = str.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine("行数:" + s.Length);
            //if(s.Length==0)return;
            List<string> mins = new List<string>();
            mins.Add(s[0]);
            List<string> maxs = new List<string>();
            maxs.Add(s[0]);

            for (int i = 1; i < s.Length; i++)
            {
                if (s[i].Length <= mins[0].Length)
                {
                    if (s[i].Length < mins[0].Length)
                        mins.Clear();
                    mins.Add(s[i]);
                }

                if (s[i].Length >= maxs[0].Length)
                {
                    if (s[i].Length > maxs[0].Length)
                        maxs.Clear();
                    maxs.Add(s[i]);
                }
            }
            Console.WriteLine