1. 当使用美团团购购买套餐后,后台发生了哪些业务流程?

参考答案:

1.客户端向服务器发起套餐购买,并带上用户ID、商品ID、token等信息。

2.服务器收到客户端发送的请求,校验用户信息以及根据商品ID查询库存情况,并将库存结果返回客户端。

3.客户端收到服务器返回的库存结果,库存不足提示库存信息,库存充足选择调起支付平台的支付SDK,并向服务器发起支付请求。

4.服务器收到客户端的请求后,校验用户信息以及商品ID信息,校验通过,服务器通知支付平台后台生成预支付订单号。支付平台后台将生成的预支付订单信息,预支付订单号返回美团服务器后台。美团服务器后台收到信息,生成带签名的客户端支付信息返回客户端。

5.客户端输入密码确认支付、支付平台返回支付结果给客户端。

6.客户端同步支付结果到美团服务器后台,上传订单信息、签名、用户信息等。

7.服务器根据客户端上传的订单号以及订单信息到支付宝或微信服务后台验单

8.验单通过,更新库存信息,更新用户账户信息,更新商品信息,更新订单管理记录,并将结果返回客户端和商家

9.客户端、商家后台订单信息及时更新,提示购买成功,并生成对应的订单记录。

2. 当用户第一次打开并登陆外卖App后会看到App的首页,打开和登陆外卖App的过程中发生了哪些具体的动作行为以及可能导致的缺陷?

参考答案:

一、首次打开App,App会进行应用的初始化和相关数据的加载。可能的缺陷包括启动闪退,打开过程加载时间过长,App启动过程的界面显示错误

二、登陆App的过程中会进行用户名和密码的校验,以及根据分控策略阻止异常账号的登陆。可能的缺陷包括用户名密码未加密存储和显示,账户登陆异常信息提示错误

三、App首页加载:用户位置定位,根据用户位置展示附近商圈的外卖门店信息。可能的缺陷包括用户位置定位失败或者错误,外卖门店信息加载失败和错误,网络加载失败等

3. 当使用美团App扫描美团单车上的二维码后,发生了什么?

参考答案:

一、二维码识别:开锁url、车辆id等

二、网络通信和页面渲染

三、业务逻辑判断:车锁状态正常、账户余额充足、用户身份正常、用户GPS位置正常

四、执行开锁、计费开始

4. 当前的移动互联网产品,大都为以移动App形式呈现的一个典型的Client/Server或客户/服务器的体系结构:用户通过UI操作触发移动用户端发送一个网络请求给后台服务,众多后台微服务以及各种数据存储相互协作,得到用户想要的信息,并发送回移动应用端。移动端根据接收到的响应,展示不同的信息给用户。

假设当你在移动App中,点击一个按钮,比方说,美团的登陆按钮,如果从移动App的界面看起来,任何事情都没有发生,你将如何分析定位问题大致发生在什么地方?

参考答案:

界面未给出响应的原因:

程序问题:

1、按钮的监听事件未正确调用,或者干脆就没有添加监听

2、监听确认被调用,但监听过程出现错误或异常,例如参数传输失败。

3、前端调用接口错误,如后端出现运行时异常,没有给出相应的提示消息

设备问题:

1、网络延迟,响应没有及时出现,超时

2、手机卡顿,出现死机现象

3、响应被中断

5. 将给定的字符串,按照规则删除字符,输出删除后的字符串。删除规则为:相同字符连续,则删除,如”aaaab”删除后的字符串为”b” 。注:仅是单个字符连续才删除,如babababa则不能删除;

#include<iostream>
using namespace std;
int main() {string str;while (cin >> str) {int len = str.length();if (len == 1) {cout << str << endl;continue;}int j = 0;for (int i = 0; i < len; i++) {if (str[i - 1] != str[i]&&str[i]!=str[i+1]) {cout << str[i];j = 1;}}if (j == 0) {cout << "no" ;}cout << endl;}return 0;
}

6. 小美和小团在玩一个游戏,小美任意给出一个大字符串str1以及一个独立的小字符串str2,小团需要从这个大字符串str1里找到包含独立小字符串str2中所有字符的最小子字符串str3;
例如,小美给出一个大字符串"meituan2019"和一个子字符串"i2t",那么小团给出的答案就应该是"ituan2";

需要注意:
1、str1中有可能没有完整包含str2所有字符的情况,此时返回"",即为空字符串;
2、str1不会为空,但str2有可能为空,此时返回整个str1;
3、str2可能存在重复的字符,此时str3需要包含相等数量该字符;

7.给定一个仅包含 0 和 1 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。

8. 一个班级男生和女生数量相同,老师要求男生女生进行排队,男生全部排在队列前面,女生紧跟着排在男生队列后面,形成一个队列,现在要求男生女生交叉排列并且第一位是男生,且每个人在在原队列中的顺序不变,如何来做?

要求:

交叉前:队列[男1,男2,男3,男4…男n,女1,女2,女3,女4…女n]

交叉后:队列[男1,女1,男2,女2,男3,女3,男4,女4…男n,女n]

#include<iostream>
using namespace std;
int main(){int n;cin>>n;int men[n];int women[n];for(int i=0;i<n;i++){cin>>men[i];}for(int i=0;i<n;i++){cin>>women[i];    }for(int i=0;i<n;i++){cout<<men[i]<<endl;cout<<women[i]<<endl;}return 0;
}

9. 美团外卖是知名的外卖平台,现在有一名新入职的外卖小哥。请你给他写一段程序根据外卖地图和交通拥堵情况,告诉他从“配送点”V0,到各个目的地的最短配送距离。其中拥堵程度可以与路径参数直接相加,例如:V0点拥堵,拥堵系数是2,那么在地图上V0点的3条线路的参数都要加2,由原来的1、2、7变为3、4、9再进行。

路径规划计算。路径参数越大代表路程越长。

#include<iostream>
#define MAX 100
#define INF 9999
using namespace std;
void dijkstra(int mMatrix[][6], int mVexNum, int vs, int prev[], int dist[]);int main() {int graph[6][6] = { {0, 1, 2, 7, 9999, 9999},{1, 0, 2, 9999, 5, 4},{2, 2, 0, 4, 4, 9999},{7, 9999, 4, 0, 6, 9999},{9999, 5, 4, 6, 0, 3},{9999, 4, 9999, 9999, 3, 0}};int eVexNum = 6;    int prev[MAX] = { 0 };int dist[MAX] = { 0 };dijkstra(graph, eVexNum,  0, prev, dist);    return 0;
}
/** Dijkstra最短路径。* 即,统计图中"顶点vs"到其它各个顶点的最短路径。** 参数说明:*       vs -- 起始顶点(start vertex)。即计算"顶点vs"到其它顶点的最短路径。*     prev -- 前驱顶点数组。即,prev[i]的值是"顶点vs"到"顶点i"的最短路径所经历的全部顶点中,位于"顶点i"之前的那个顶点。*     dist -- 长度数组。即,dist[i]是"顶点vs"到"顶点i"的最短路径的长度。*/
void dijkstra(int mMatrix[][6],int mVexNum,int vs, int prev[], int dist[])
{int i, j, k;int min;int tmp;int flag[MAX];      // flag[i]=1表示"顶点vs"到"顶点i"的最短路径已成功获取。char mVexs[] = { '0', '1', '2', '3', '4', '5', '6' };int end, block, blockCount;cin >> end >> block >> blockCount;for (int i = 0; i < 6; i++) {if(mMatrix[block][i]!=0|| mMatrix[block][i]!=INF)mMatrix[block][i] += blockCount;if(mMatrix[i][block] != 0 || mMatrix[i][block] != INF)mMatrix[i][block] += blockCount;}// 初始化for (i = 0; i < mVexNum; i++){flag[i] = 0;              // 顶点i的最短路径还没获取到。prev[i] = 0;              // 顶点i的前驱顶点为0。dist[i] = mMatrix[vs][i]; // 顶点i的最短路径为"顶点vs"到"顶点i"的权。}// 对"顶点vs"自身进行初始化flag[vs] = 1;dist[vs] = 0;// 遍历mVexNum-1次;每次找出一个顶点的最短路径。for (i = 1; i < mVexNum; i++){// 寻找当前最小的路径;// 即,在未获取最短路径的顶点中,找到离vs最近的顶点(k)。min = INF;for (j = 0; j < mVexNum; j++){if (flag[j] == 0 && dist[j] < min){min = dist[j];k = j;}}// 标记"顶点k"为已经获取到最短路径flag[k] = 1;// 修正当前最短路径和前驱顶点// 即,当已经"顶点k的最短路径"之后,更新"未获取最短路径的顶点的最短路径和前驱顶点"。for (j = 0; j < mVexNum; j++){tmp = (mMatrix[k][j] == INF ? INF : (min + mMatrix[k][j]));if (flag[j] == 0 && (tmp < dist[j])){dist[j] = tmp;prev[j] = k;}}}cout << dist[end] << endl;打印dijkstra最短路径的结果//cout << "dijkstra(" << mVexs[vs] << "): " << endl;//for (i = 0; i < mVexNum; i++)//    cout << "  shortest(" << mVexs[vs] << ", " << mVexs[i] << ")=" << dist[i] << endl;
}

Dijkstra算法(二)之 C++详解 - 如果天空不死 - 博客园 (cnblogs.com)

美团2020校招测试方向笔试题相关推荐

  1. 【美团点评2020校招测试方向笔试题】算法题部分1.删除字符 2.队列组合排序 3.寻找最小子字符串 4.最大矩形 5.最短送餐路程计算

    做题网址:点击进入 1.[编程题]删除字符 将给定的字符串,按照规则删除字符,输出删除后的字符串.删除规则为:相同字符连续,则删除,如"aaaab"删除后的字符串为"b& ...

  2. 美团点评2020校招测试方向笔试题

    一: 直接输出, 用flag记录是否有答案,一次循环,时间复杂度O(n). 代码 #include <iostream> #include <cstring> #include ...

  3. 美团2020校招前端方向笔试题

    1.简答题1 答案: 1. i,s,a都在栈中,new出来的对象A在堆上. 2. 执行完后a.i的值还是字符串op. 解析: 1.考察js堆与栈:栈内存主要用于存储各种基本类型的变量,包括Boolea ...

  4. 美团校招php笔试题,【美团点评】2020校招数据分析方向笔试题

    这几天做了下美团校招的一些套题.(只写了编程,这两天慢慢更新吧) 这套题还是蛮简单的..我暴力了好几个都能过.一个小时多一点差不多能写完. 4.棋子翻转 题意:在4*4的棋盘上摆满了黑白棋子,黑白两色 ...

  5. 美团点评2020校招前端方向笔试题

    五:斐波那契数列 代码 #include <iostream> #include <cstring>using namespace std; typedef long long ...

  6. 美团点评2020校招数据分析方向笔试题

    说明关系型数据库通过索引提升查询效率的背后原理 . 如果没有索引,数据库引擎需要通过全表扫描来查找数据,这会产生大量的磁盘IO. 关系型数据库使用B+树构建索引来加速加快查询.B+树是一种二叉查找树( ...

  7. 美团点评校招前端方向笔试题

    1. 请按顺序写出打印结果,并说明原因. var name = 'global'; var obj = {name: 'local',foo: function(){this.name = 'foo' ...

  8. 爱奇艺2020校招Java方向笔试题(第一场)

    1. 计算下列程序的时间复杂度(B) for (i=1;i<n;i++)for(j=1;j<m;j++){a1,a2,a3,a4}; A. O(n) B. O(nm) C. O(m) D. ...

  9. 爱奇艺2020校招Java方向笔试题(第二场)

    1. 以下关于synchronized描述不正确的是(C) A. 当一个线程访问某对象的synchronized方法或者synchronized代码块时,其他线程对该对象的该synchronized方 ...

  10. 美团点评2020年测试工程师笔试题

    VOL 155 04 2020-09 今天距2021年118天 这是ITester软件测试小栈第155次推文 点击上方蓝字"ITester软件测试小栈"关注我,每周一.三.五早上  ...

最新文章

  1. Android异步下载网络图片(其一:Handler)
  2. 成功解决xlrd.biffh.XLRDError: Unsupported format, or corrupt file: Expected BOF record; found b‘Debug is
  3. 排序算法的python实现
  4. Hadoop 底层原理介绍
  5. How to resolve syntax error in CL_IM_CMS_SI_GEN_INTF
  6. vuex的结构有哪些参数?
  7. 初探System.Threading.Channels
  8. NC51272 棋盘覆盖
  9. 计算机网络(9)-----TCP可靠传输的实现
  10. MS SQL 监控数据/日志文件增长
  11. Python学习路线介绍
  12. xen虚拟化实战系列(二)之xen虚拟机安装
  13. 数组的几种定义方式及初始化
  14. 《Programming WPF》翻译 第8章 3.Storyboard
  15. 看jQuery源码的技巧
  16. 由于某些原因,请使用bejson.com的哥们先使用1.bejson.com
  17. 深耕MySQL - 50道SQL练习题
  18. 随机过程之更新理论的应用
  19. 文件服务器 标签,别再「新建文件夹」了,这个标签管理器可以让你的硬盘更整洁...
  20. 实现原理 扫描枪_条码扫描枪的工作原理

热门文章

  1. Cousera 无法播放视频 解决办法 widows 和 linux
  2. iPhone、iPad尺寸
  3. 学计算机激励标语口号,关于学习的励志口号标语(精选160句)
  4. Ubuntu20.04无法连接wifi的解决方法
  5. 雅虎终于死了:从1000亿到破产贱卖,最后连名字都没
  6. Android 异步加载图片,使用LruCache和SD卡或手机缓存,效果非常的流畅
  7. linux编译lilo,linux中LILO及GRUB配置实例
  8. 夜深了,最好喝点咖啡
  9. 有效缓解眼睛疲劳的小方法网站设置404页面有什么作用
  10. e580显卡驱动_联想e580显卡驱动下载-联想e580笔记本显卡驱动v25.20.15012.2005 官方版 - 极光下载站...