美团前端暑期实习笔试-3.18

选择题

经典操作系统和数据库

编程题

第一题,二维前缀和

#include<bits/stdc++.h>
using namespace std;

int mp[1010][1010];
int pre[1010][1010];

// !注意可能一个坐标上有多个敌人 
int main() {
	int n,a,b;
	cin >> n >> a >> b;
	int mx = -1, my = -1;
	for(int i = 1; i <= n; i++) {
		int x, y;
		cin >> x >> y;
		mx = max(mx, x + 1);
		my = max(my, y + 1);
		mp[x][y] ++;	
	}
	for(int i = 1; i <= mx; i++) {
		for(int j = 1; j <= my; j++) {
			pre[i][j] = mp[i][j] + pre[i - 1][j] + pre[i][j - 1] - pre[i - 1][j - 1];
		}
	}
	int res = -1;
	for(int i = 1; i <= mx - a; i ++) {
		for(int j = 1; j <= my - b; j++) {
			res = max(res, pre[a + i][b + j] - pre[a + i][j - 1] - pre[i - 1][b + j] + pre[i - 1][j - 1]);
		}
	}
	cout << res;
}

第二题,模拟,考虑奇数长度字符串的情况

#include<bits/stdc++.h>
using namespace std;

int main() {
	string s, str;
	cin >> s;
	str = s;
	reverse(str.begin(), str.end());
	int l = 0, r = s.length() - 1;
  if(s.length() == 1) {
    cout << 'a' << endl;
  } else if(str == s) {
		while(s[l] == 'a' && l < r) {
			l ++;
			r--;
		}
		s[l] = s[r] =  'a';
	} else {
		int cnt = 0, x = -1, y = -1,flag = 0;
		while(l < r) {
			if(s[l] != s[r]) {
				cnt ++;
				x = l, y = r;
				if(min(s[l], s[r]) == 'a') {
					flag = 1;
				}
				s[l] = s[r] = min(s[l], s[r]);	
			} 
			l ++;
			r --;
		}
		if(flag && cnt == 1){
			if(s.length() & 1) {
				s[s.length() / 2] = 'a';
			}
		} else if(cnt == 1) {
			s[x] = s[y] = 'a';
		}
	}
	cout << s << endl;
} 

#我的实习求职记录##美团##美团笔试#
2023年实习面试记录 文章被收录于专栏

记录一下2023年上半年找实习工作的面试情况。

全部评论
羡慕 上次写前罪和还是在两年前
点赞 回复 分享
发布于 2023-03-18 21:00 北京
还要考数据库的么,这不是前端嘛
点赞 回复 分享
发布于 2023-03-19 18:04 重庆
大佬太强了吧
点赞 回复 分享
发布于 2023-03-20 17:48 四川
感谢大佬分享
点赞 回复 分享
发布于 2023-03-20 18:21 浙江

相关推荐

评论
7
17
分享

创作者周榜

更多
牛客网
牛客企业服务