
美团点评2020校招系统开发方向笔试题
发布日期:2021-05-20 04:56:40
浏览次数:22
分类:精选文章
本文共 2515 字,大约阅读时间需要 8 分钟。
第七题
代码#include #include #include using namespace std;int a, b;char c;int main(){ scanf("%c%d%c", &c, &a, &c); getchar(); scanf("%c%d%c", &c, &b, &c); printf("%c%d%c", c, a + b, c); return 0;}
第八题
思路 枚举所有的情况,如果当前这个序列是回文,就ans++ 最后输出ans代码
#include #include #include using namespace std;string x, s;int main(){ int ans = 0; cin >> s; for(int i = 0; i < s.size(); i++){ x = ""; for(int j = 0; j <= i; j++){ x += s[i - j]; string t = x; reverse(t.begin(), t.end()); if(t == x){ //ans++; } } } cout << ans << endl; return 0;}
第九题
思路 区间DP石子合并经典问题, 见蓝皮书284页代码
#include #include #include #include using namespace std;int n;int a[110], sum[110];int f[110][110];int main(){ cin >> n; memset(f, 0x3f, sizeof f); for(int i = 1; i <= n; i++){ cin >> a[i]; sum[i] = sum[i - 1] + a[i]; f[i][i] = 0; } for(int len = 2; len <= n; len++){ for(int l = 1; l <= n - len + 1; l++){ int r = l + len - 1; int s = sum[r] - sum[l - 1]; for(int k = l; k < r; k++){ f[l][r] = min(f[l][r], f[l][k] + f[k + 1][r] + s); } } } cout << f[1][n] << endl; return 0;}
第十题
暴力枚举代码
#include #include #include #include using namespace std;string s[110];int n;string get_ans(string t, int k){ string ans = t.substr(0, 1); for(int i = 0; i < n; i++){ if(i == k) continue; int j = 0; while(s[i][j] == t[j]){ j++; if(j >= ans.size()){ ans = t.substr(0, j + 1); } } } return ans;}int main(){ cin >> n; for(int i = 0; i < n; i++){ cin >> s[i]; } for(int i = 0; i < n; i++){ string ans = get_ans(s[i], i); cout << ans << endl; } return 0;}
字符串HASH代码 不能全过
代码
#include #include #include #include using namespace std;typedef unsigned long long ULL;const int N = 110, P = 13331;ULL p[N][N], h[N][N];int n, m;char s[N][N];ULL query(int l, int r, int i){ return h[i][r] - h[i][l - 1] * p[i][r - l + 1];}int main(){ scanf("%d", &n); for(int i = 1; i <= n; i++){ scanf("%s", s[i] + 1); } for(int k = 1; k <= n; k++){ p[k][0] = 1; int Size = strlen(s[k] + 1); for(int i = 1; i <= Size; i++){ p[k][i] = p[k][i - 1] * P; h[k][i] = h[k][i - 1] * P + s[k][i] - 'a' + 1; } } for(int i = 1; i <= n; i++){ int len = 1; for(int j = 1; j <= n; j++){ if(i == j) continue; int Size = strlen(s[j] + 1); for(int k = 1; k <= Size; k++){ if(query(1, k, i) == query(1, k, j)){ if(k >= len) len++; } else break; } } for(int k = 1; k <= len; k++) printf("%c", s[i][k]); cout << endl; }}
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2025年04月17日 22时01分27秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
《街机厅里的printf大冒险:当像素小人与格式化字符串共舞》
2023-01-23
Git 常用命令清单(整理且详细)
2023-01-23
Servlet 简介
2023-01-23
乒乓球问题
2023-01-23
线程、多线程和线程池面试专题
2023-01-23
java定时器,留着用
2023-01-23
多线程,高并发
2023-01-23
linux(CENTOS)系统各个目录的作用详解
2023-01-23
科技前沿:React 组件之间通信的新模式与实践
2023-01-23
程序员的出路:超强引流与职业发展的新时代
2023-01-23