京东笔试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; }