面试总结二

2014.9.22 继上周四面了两家后,今天又有两家,其实也是最后两家。。。


上午是个互联网电商比较靠前的,公司成立没多少年,已经上市了。

一共3轮面试,都是问测试有关的。因为这篇博客写的太滞后了。。。所以测试题目不太记得了,大概还记得两点:

  1. 一个后台提供给前端API的测试,大致是从数据库里面挑选出很多信息,作为输出。测试的时候强调了可能数据量比较大怎么办?我的方法是导出成txt然后写个批处理就好了;那边说这个OK,他们目前用的是根据输出再在数据库里建个表,然后比较两个表。
  2. 还是个人能力不足啊,各种都没学习过,接触过。所以最后测试主管说,他们那里的高级测试要主管一条产品线,要求比较高,类似其他公司的测试主管测试经理。其实我懂的啦,就是说你能力不足的原因。。。说的真委婉嘿嘿~
  3. 目前的自我学习计划是python(ing),mysql,Java,TestNG,Mobile
下午继续是个互联网翘楚。
第一轮有道代码题写atoi函数:
#include <ctype.h>//for function "isspace"

int atoi(char *s)
{	
	int result;
	int sign;//determine it is positive or negative
	
	while (isspace(*s)) s++;//skip the whitespace
	sign = ( *s == '-') ?-1:1;
	if (*s == '+' || *s == '-') s++;//skip the sign

	result = 0;
	while(isdigit(*s))
	{
		result = 10 * result + (*s - '0');//result = base * result + (*s - '0')
		s++;
	}
	return sign * result;
}


第二轮写了电梯调度算法:(只是我自己的。。。肯定是有问题的,时间太紧就大概写了下。。。)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace liftcontrol
{
    class Program
    {
        struct lift
        {
            public int top_layer = 6;//假设电梯有6层
            public int current_layer = 1;//记录电梯当前所在层数
            public string direction = "stop";//记录电梯当前运行状态,分stop,up,down
            public int[] aim_up = { 0, 0, 0, 0, 0, 0 };//记录电梯当前上行停靠站点,0表示不停靠,1表示停靠
            public int aim_up_max = 1;//记录电梯当前上行的终点站
            public int[] aim_down = { 0, 0, 0, 0, 0, 0 };//记录电梯当前下行停靠站点
            public int aim_down_min = 6;//记录电梯当前下行停靠站点
            public int[] aim_up2 = { 0, 0, 0, 0, 0, 0 };//记录电梯下一轮上行停靠站点
            public int aim_up_max2 = 1;//记录电梯下一轮上行的终点站
            public int[] aim_down2 = { 0, 0, 0, 0, 0, 0 };//记录电梯下一轮下行停靠站点
            public int aim_down_min2 = 6;//记录电梯下一轮下行的终点站
        }

        static void push_outside(int layer, string direction, lift A, lift B)//外部有人在某楼层按了方向以后
        {//下面layer和direction都没有考虑非法值。。。
            if ((1 == layer && "down" == direction) || (6 == layer && "up" == direction)) Console.WriteLine("invalid input");//底层和最高层的边界条件
            if ("up" == A.direction)//假设有两部电梯A和B,先判断A在上升过程中
            {
                if ((layer >= A.current_layer) && ("up" == direction))//如果外部请求也是向上,并且楼层在电梯上方,则把它加入电梯要停靠的站点,并且根据需要修改终点站
                {
                    A.aim_up[layer - 1] = 1;
                    if (layer > A.aim_up_max) A.aim_up_max = layer;
                }
                else if ("up" == B.direction)//对于其他任意情况,A都不能接受这个请求,需要判断A的终点站和B的终点站与请求的楼层之间的距离,把离的近的电梯分配过去;此处需要判断B的方向是因为根据方向选择对应的终点站
                {
                    if ((Math.Abs(A.aim_up_max - layer)) <= Math.Abs((B.aim_up_max - layer)))//计算距离,A的终点站比较近
                    {
                        if ("up" == direction)//根据请求的方向,对应加入A下一轮的运行的停靠站点
                        {
                            A.aim_up2[layer - 1] = 1;
                            if (layer > A.aim_up_max2) A.aim_up_max2 = layer;
                        }
                        if ("down" == direction)
                        {
                            A.aim_down2[layer - 1] = 1;
                            if (layer < A.aim_down_min2) A.aim_down_min2 = layer;
                        }
                    }
                    else//计算距离,B的终点站比较近
                    {
                        if ("up" == direction)//根据请求的方向,对应加入B下一轮的运行的停靠站点
                        {
                            B.aim_up2[layer - 1] = 1;
                            if (layer > B.aim_up_max2) B.aim_up_max2 = layer;
                        }
                        if ("down" == direction)
                        {
                            B.aim_down2[layer - 1] = 1;
                            if (layer < B.aim_down_min2) B.aim_down_min2 = layer;
                        }
                    }
                }
                else if ("stop" == B.direction)//判断B的方向选择对应的终点站
                {
                }
                else//判断B的方向选择对应的终点站
                {
                }
            }
            else if ("stop" == A.direction)//对于A是没有运行,或者下行的状态分别按照上面讨论
            {
            }
            else
            {
            }
        }

        static void push_inside(int layer, lift A)//内部有人按了楼层以后
        {
            if ("up" == A.direction)//如果电梯在上升,则只接受比当前楼层大的楼层,并且修改对应需要停靠的站点和终点站
            {
                if (layer > A.current_layer)
                {
                    A.aim_up[layer - 1] = 1;
                    if (layer > A.aim_up_max) A.aim_up_max = layer;
                }                
            }
            else if ("stop" == A.direction)
            {
                if (layer > A.current_layer)
                {
                    A.aim_up[layer - 1] = 1;
                    if (layer > A.aim_up_max) A.aim_up_max = layer;
                }
                if (layer < A.current_layer)
                {
                    A.aim_down[layer - 1] = 1;
                    if (layer < A.aim_down_min) A.aim_down_min = layer;
                }
            }
            else
            {
                if (layer < A.current_layer)
                {
                    A.aim_down[layer - 1] = 1;
                    if (layer < A.aim_down_min) A.aim_down_min = layer;
                }
            }
        }
//上面代码我能想到的一个逻辑问题是没有考虑如果一直有上行的请求在两部电梯周围,则离的比较远的下行请求会一直得不到响应
        static void Main(string[] args)
        {
        }
    }
}
最后轮测试经理扯淡。我觉得我聊的太自如了,把自己暴露的太多。。。

截止到今天,2014.9.25 上周四面的两家,互联网广告以发offer。HR姐姐一直给我打电话,真的好真诚,可我还想等等其他的结果一起看。
互联网翘楚至今过了8天无电话,应该挂了。中间有给面试官发过邮件,只是被告知需要等HR电话通知。。。希望HR能给我打个电话说不要你,嘿嘿

这篇博客里提到的,互联网电商是猎头推荐的,周一面完猎头很着急的就问我结果,还说第二天帮我去问HR。之后无联系,想来也挂了
下午的互联网翘楚,说是本周五或者下周一给答复,仍在焦急等待中。。。
2014.9.28update: 上行说到的互联网翘楚发offer了,26号HR打电话说有offer了,28号今天谈了薪资,说明天下班前发正式offer。应该就去他们家了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值