<input id="suquq"><acronym id="suquq"></acronym></input>
  • <input id="suquq"></input>
    <input id="suquq"></input>
  • <menu id="suquq"><u id="suquq"></u></menu>
    <object id="suquq"><acronym id="suquq"></acronym></object>
  • <input id="suquq"></input>
  • <menu id="suquq"></menu>
    <menu id="suquq"></menu>
  • <input id="suquq"><u id="suquq"></u></input>
    <menu id="suquq"><tt id="suquq"></tt></menu>

    2021年美团系统运维面试题

    小编:管理员 516阅读 2021.06.25

    第1题:


    有ABCD四个人要在夜里过一座桥,他们通过这座桥分别需要耗时1、2、5、10分钟,现在只有一支手电,过桥时必须带有手电,并且同时最多只能两个人一起过桥。请问如何安排能够让四个人尽快都过桥。



    1和2 先过。1返回,5和10先过,2返回,1和2一起过。一共时间=2+1+10+2+2=17分钟


    第2题:


     25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。请给出答案并描述比赛过程。



     第一--五局:分成5个组,可以得出5个组的第一名

    第六局:5个第一名一起跑,这样可以得出最快的那一匹。

    第七局:可能成为2,3名的再赛一次,包括最快组的2,3名,次快组的1,2名,第三快组的第1名。


    所以一共是7次


    第3题:


     在有团购之前,大家都是现场买门票,公园的门票是5元,某天售票处开门时没有准备零钱。假设一天来购票的依次有2N个人,其中有N个人有5元零钱,其他N个人只有10元面值的钱;假设每人只买一张票。请问任何人都不必为找零而等待的概率是多少?



     任何人不必等的情况数 Cn=2N!/(N!*N!*(N+1)) 总的情况数 T=2N!/N!*N! 不必等的概率为:Cn/T = 1/(N+1)


    第4题:


     有一个函数“int f(int n)”,请编写一段程序调试函数f(n)是否总是返回0,并添加必要的注视和说明。



     int n = INT_MIN;

    do

    {

        if(0 != f(n))

        {

            //error

            break;

         }

    }

    while(n++ != INT_MIN);


    if(n != INT_MIN) error;//


    第5题:


     用你熟悉的语言编写程序用两个栈(Stack)模拟队列(Queue)的先进先出操作,仅实现add、remove方法即可。
    1)请先描述思路; 2)编写完整代码实现,编程语言不限。



     思路:栈是“先进后出”,队列是“先进先出”,当向队列中加入元素n,m,在队列中n应该位于队尾,当删除时候,元素n最先删除;向栈1中加入元素n、m时,m位于栈顶,将栈1中元素加入到栈2中,则n位于栈2的顶部,当删除时,元素n先删除,即实现了两个栈模拟队列的过程;

         

    public class queue{

      private Stack<String> stackOne=new Stack<String>();

      private Stack<String>      stackTwo=new Stack<String>();

      

      public void add(String str){

          stackOne.push(str);

      }

      

      public void delete(){

         if(stackTwo.isEmpty()){

            while(!stackOne.isEmpty()){

               stackTwo.push(stackOne.pop());    

            }

         }

        if(stackTwo.isEmpty()){

           system.out.printIn("queue is empty");

        }

       else{

                stackTwo.pop();    

         }

       

         

     }


       

    }


    第6题:


     编写函数,获取两段字符串的最长公共子串的长度,例如:
    S1= GCCCTAGCCAGDE
    S2= GCGCCAGTGDE
    这两个序列的最长公共子串是GCCAG,也就是说返回值。

    1)请先描述思路;

    2)编写完整代码实现,编程语言不限。



     这道题使用矩阵对角线能够比较形象的描述问题解法,放出自己的C++代码如下:

    int longestCommonString(string s1, string s2)
    {
      int len  = 0;

      int *temp = new int[s2.length()];
      memset(temp, 0,  s2.length() * sizeof(int));

      for (int i = 0; i < s1.length(); i++)
      {
       for  (int j = s2.length() -1; j >= 0; j--)
       {
         if (s1[i]  == s2[j])
        {
          if (i == 0 || j == 0)
             temp[j] = 1;
          else
              temp[j] = temp[j -   1] + 1;


           if (len < temp[j])  
             len = temp[j];  
         }  
      }
      else
        temp[j] = 0;
     }

     return len;
    }


    第7题:


     (iOS开发选做)实现多线程都有哪几种方法?


    第8题:


     (Android开发选做)关于Activity的生命周期,下拉statusbar时,桌面Activity会触发哪几个生命周期?系统关机时,弹出关机Dialog之后,此时,桌面Activity会触发哪几个生命周期?



     下拉时触发:onPause(),onStop()

    弹出dialog:onPause()


    第9题:


     (系统运维选做)有主机A、B、C通过eth0和同一个交换机相连,A的IP地址为192.168.1.2,子网掩码255.255.255.0,B的IP地址为192.168.2.2,子网掩码255.255.255.0,C的IP地址为192.168.4.2,子网掩码255.255.255.0。现希望A和B能够通信,A和C、B和C不能通信。
    1)假设能更改A和B的子网掩码,要如何设置A和B的子网掩码?
    2)如果不能更改子网掩码,需要在A和B做什么设置?
    3)A和B通信时,C是否能够通过sniffer截获A和B通信的报文,如果只能截获一部分报文,是哪一类报文?
    4)C可以仅通过sniffer得知A和B的IP地址和MAC地址吗?如果能,如何获得?



     1) 通过修改A B掩码使得它们能互相通信的话,只需要AB 同在一个子网。因此A 和B 的掩码为255.255.252.0   ,   C不变

    2)A的IP 地址修改为与B 同一个网段,如192.168.2.3


    关联标签:
    微彩