京东笔试8月6号

选择题:
一直提示跳出页面,后来关闭了qq和微信,还是这样,搞得我有点懵!!!!!
后来直接乱选提交了。唉!!!
第一题
#include<iostream>
#include<vector>
#include<unordered_map>
#include<math.h>
#include<algorithm>
using namespace std;

double getLargest(const vector<char>& vec1, const vector<char>& vec2) {
	if (vec1.size() < 1 || vec2.size() < 1) return 0;
	vector<int>dp1(vec2.size() + 1);
	vector<int>dp2(vec2.size() + 1);
	for (int i = 1; i <= vec1.size(); ++i) {
		dp2[0] = 0;
		for (int j = 1; j <= vec2.size(); ++j) {
			if (vec1[i - 1] == vec2[j - 1])
				dp2[j] = dp1[j - 1] + 1;
			else
				dp2[j] = max(dp1[j], dp2[j - 1]);
		}
		swap(dp1, dp2);
	}
	return dp1.back() * 1.0 / vec1.size();
}

int main() {
	int n = 0;
	cin >> n;
	vector<char>vec1(n);
	vector<char>vec2(n);
	for (int i = 0; i < n; ++i)
		cin >> vec1[i];
	for (int j = 0; j < n; ++j)
		cin >> vec2[j];
	double res = getLargest(vec1, vec2);
	printf("%.2f", res);
	cout << ((res) > 0.5 ? " No" : " Yes") << endl;
}
第二题:
#include<vector>
#include<algorithm>
#include<string>
#include<unordered_set>
#include<iostream>
using namespace std;
bool isPrime(int n) {
	if (n < 2) return false;
	if (n == 2 || n == 3) return true;
	if (n % 6 != 1 && n % 6 != 5) return false;
	int m = sqrt(n);
	for (int i = 5; i <= m; i += 6) {
		if (n % i == 0 || n % (i + 2) == 0)
			return false;
	}
	return true;
}

bool isPariam(int n) {
	string str = to_string(n);
	int left = 0, right = str.length()-1;
	while (left < right) {
		if (str[left] != str[right])
			return false;
		++left;
		--right;
	}
	return true;
}

unordered_set<int> getPP(int n, int m) {
	unordered_set<int>res;
	for (int i = 2; i <= m; ++i) {
		if (isPrime(i) && isPariam(i)) {
			res.insert(i);
		}

	}
	return res;
}

int getRes(int n, int m) {
	vector<int>res;
	auto pp = getPP(n, m);
	int cnt = 0;
	for (int i = max(10,n); i <= m; ++i) {
		int k = 0;
		int low = 0;
		int cur = i % 10;
		int high = i / 10;
		while (true) {
			if (pp.find(high * pow(10, k) + low) != pp.end()) {
				++cnt;
				break;
			}
			if (high == 0) break;
			low = cur * pow(10, k) + low;
			cur = high % 10;
			high = high / 10;
			++k;
		}
	}
	return cnt;
}


int main() {
	int n, m;
	cin >> n >> m;
	cout << getRes(n, m) << endl;
}



#笔试题目##京东#
全部评论

相关推荐

CADILLAC_:我要用bava 不要用java 了 啊啊啊啊啊啊啊啊啊啊啊
点赞 评论 收藏
分享
吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司9个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务