美团点评 Android开发一面2020暑期实习面经

面试过程中突然10010打电话来打断了我的录音,挂掉电话后看到还在录,最后完成录音后发现都没了,心态爆炸。题目只能靠依稀的记忆了

总的来说面试官很友善,遇到不会的会慢慢引导,也会有一点点小小的提示,问的东西也不会很难,没有怎么去深究。

 

计算机网络

  1. TCP三次握手。
  2. 三次握手中会传输什么?
  3. 四次挥手。
  4. 两次挥手会怎样?
  5. 两次握手会怎样?
  6. 通过url获得信息的过程

JAVA

  1. JAVA内存分配了解多少,JVM的分区。
  2. 垃圾回收机制的两种方法?(引用计数器,是否可达)
  3. 四种引用及其什么时候会被回收。
  4. Java和JavaScript的区别(定义的属性类型是否可变)
  5. Java的编译过程和JavaScript的编译过程。
  6. 对Java面向对象的了解和三个基本特征。
  7. 同步锁的理解。
  8. lock的理解。

Android

  1. 生命周期及其代表含义。
  2. 你用过的布局有哪些?
  3. Override的作用是什么?

 

算法题:

编写一个程序,输入一段字符串,把字符串解析为数字,而且不能超过int上限(这里为了测试上限修改为1024),字符串开头会有‘+’,‘-’号,并且中间会有空格。若超出int的话输出最大最小值(-2^31和2^32-1)

输入样例:“-4090” “1024” “-1024” “1025” “-123456”

下面是我的答案,能通过样例

#include <iostream>
#include<string.h>
using namespace std;

char a[1000];
int suan(){
    int fuhao=1;
    int num=0;
    int man=0;
    int len=0;
    
    for(int i=0;i<strlen(a);i++){
        if(a[i]==' '){
            continue;
        }
        if(a[i]=='+' && i==0){
            fuhao=1;
            continue;
        }else if(a[i]=='-' && i==0 ){
            fuhao=-1;
            continue;
        }
        else{
            
            if((1024-(a[i]-48))/10<num){
                return 1024*fuhao;
            }
            else{
                 num=num*10+a[i]-48;
            }
        }
    }
    return num*fuhao;
}

int main() {
    a[0]='+';
    a[1]='1';
    a[2]='0';
    a[3]='2';
    a[4]='4';
    printf("%d",suan());
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值