盛趣游戏2020秋招笔试真题
盛趣游戏2020秋招笔试真题
1、最长公共部分
【题目描述】求出两个给定串的最长公共部分
输入描述
输入两行字符串
输出描述
输出公共部分
示例1
输入
11223344 112223344
输出
223344
【解题思路】
经典动态规划问题。最长公共子串
【参考代码】
#include <stdio.h> #include <string.h> int main() { char str[50000], patter[50000]; scanf("%s", str); scanf("%s", patter); if (strlen(str) < strlen(patter)) { char temp[50000]; strcpy(temp, str); strcpy(str, patter); strcpy(patter, temp); } int len = 0, maxlen = 0; char *res; for (int i = strlen(str) - 1; i >= strlen(patter); --i) { for (int k = strlen(patter) - 1; k >= 0; --k) { if (str[k + i - strlen(patter) + 1] == patter[k]) { len++; } else if (len > maxlen) { maxlen = len; res = &str[i + k - len]; len = 0; } else len = 0; } } for (int i = 0; i < maxlen; ++i) { printf("%c", *(res + i)); } printf("\n"); return 0; }
2、计算bits个数
【题目描述】给定一个64bit整数, 计算bit位为1的个数
输入描述
收入一个64bit的整数, 例如3
输出描述
输出2
示例1
输入
17
输出
2
【解题思路】
位运算,拆分64位整数的每一位。
【参考代码】
#include <iostream> using namespace std; int main() { long long int a; cin >> a; int count = 0; for (int i = 0; i < 64; i++) { if (a >> i & 1) count++; } cout << count; }
3、购买玩具
【题目描述】现在有一笔钱, 要去采购玩具, 最多可以买多少种玩具
输入描述
输入一个玩具价格的数组和总钱数,例如: [1, 2, 3, 4, 5],10
输出描述
输出可以购买的玩具种类个数:4
示例1
输入
[1,2,3,4,5],10
输出
4
【解题思路】
贪心,优先购买价格低的玩具。
【参考代码】
#include <bits/stdc++.h> using namespace std; int main() { string vec; getline(cin, vec); int mey; cin >> mey; vector<int> arr; for (int i = 0; i < vec.size(); i++) { if (vec[i] == ' ') continue; int num = 0; if (vec[i] <= '9' && vec[i] >= '0') { while (vec[i] <= '9' && vec[i] >= '0') { num = num * 10 + vec[i] - '0'; i++; } arr.push_back(num); } } sort(arr.begin(), arr.end()); int count = 0; int j = 0; while (mey >= 0 && j < a
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2021名企校招笔试真题-技术 文章被收录于专栏
<p> 本专刊由牛客官方团队打造,主要讲解名企校招技术岗位的笔试题。 内容中包含多个名企的笔试真题,附有题目思路及参考代码 本专刊购买后即可解锁所有章节,故不可以退换哦~ <