腾讯2017暑期实习生编程题(三题)
总的来说,作为暑期实习生的题目,三题都不难,仔细思考都能顺利做出来
PS:我喜欢漂亮点的代码风格O(∩_∩)O
对于A题,求个逆序,再求最长公共子序列就可以了,这里回头还可以复习一下最长公共子串怎么求,记得上次省赛线段树+最长公共子串那题挂了不少人。
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;const int MAXLEN = 1010;
int temp[MAXLEN][MAXLEN];int getRemoveNumber(const string& res, int len)
{string str(res);reverse(str.begin(), str.end());for (int i = 0; i < len; ++i){for (int j = 0; j < len; ++j){if (res[i] == str[j])temp[i + 1][j + 1] = temp[i][j] + 1;else temp[i + 1][j + 1] = max(temp[i + 1][j], temp[i][j + 1]);}}return len - temp[len][len];
}
int main()
{string str;int ans;while (cin >> str){ans = getRemoveNumber(str, str.length());cout << ans << endl;}return 0;
}
对于B题:设置两个下标,从后往前找就可以了,不难但容易出错,而且加上边界情况容易混乱
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;void solve(string& str, int len)
{int i = len - 1, j = len - 1;char temp;while (true){if (i < 0){return;}if (str[i] < 'a'){temp = str[i];for (int k = i + 1; k <= j; ++k){str[k - 1] = str[k];}str[j] = temp;j--;}i--;}
}
int main()
{string str;while (cin >> str){solve(str, str.length());cout << str << endl;}return 0;
}
对于C题:咋一看简单,细想却发现不少问题。首先对于A、B两个数,求它们的对数,有两种情况,一种是A==B,则公式为NUM(A)*(NUM(A)-1) / 2,另一种,A != B时,公式为NUM(A)*NUM(B)。然后对于最小差的对数,也分两种情况,一方面是含有相同的数字的情况,那么最小差肯定是0,假设A有nA个相同的,B有nB个相同的,则最小差是它们的总和。另一方面,不含有相同的数字,即N个数各不相同,这也好办,代码中我注释了,就不罗嗦了,当然这两个方面可以合在一起,但要注意比较,不要在遍历时重复计算两个相同的。。。最后在降复杂度上,可以发现可以着手的地方是计算每个数字出现的个数上,可以用map降为O(1),当然,这一步一开始就因该想到了( •̀ ω •́ )y。
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;const int MAX = 2147483647;
map<int, int>mmap;
int arr[100100];int countNumber(int a, int b)
{if (a == b) return mmap[a] * ( mmap[a] - 1 ) / 2;else return mmap[a] * mmap[b];
}
int main()
{int N;while (cin >> N){if (N == 1){cin >> N; //随便读一个进来cout << "0 0" << endl;continue;}for (int i = 0; i < N; ++i){cin >> arr[i];mmap[arr[i]]++;}sort(arr, arr + N);//若含有差值为0的,则看有多少个这样的数字,把它们的总对数加起来就是差值最小的对数int minNum1 = 0;for (auto it = mmap.begin(); it != mmap.end(); ++it){if (it->second > 1){minNum1 += ( it->second )*( it->second - 1 ) / 2;}}if (minNum1 != 0){cout << minNum1 << " " << countNumber(arr[0], arr[N - 1]) << endl;mmap.clear();continue;}//下面是不含有重复数字的,取差最小的两个数和差最大的两个数int min1, min2, mmin = MAX;//int max1, max2, mmax = INT_MIN; //23333,突然发现用不着。。。int minNum2 = 0, maxNum2 = 0;for (int i = 0; i < N - 1; i++){//找最小if (arr[i + 1] - arr[i] < mmin){//min1 = arr[i]; //同上,用不着。。。//min2 = arr[i + 1];mmin = arr[i + 1] - arr[i];minNum2 = countNumber(arr[i], arr[i + 1]);}else if (arr[i + 1] - arr[i] == mmin){minNum2 += countNumber(arr[i], arr[i + 1]);}}cout << minNum2 << " " << countNumber(arr[N - 1], arr[0]) << endl;mmap.clear();}return 0;
}
腾讯2017暑期实习生编程题(三题)相关推荐
- 百度2017暑期实习生编程钓鱼比赛
ss请cc来家里钓鱼,鱼塘可划分为n*m的格子,每个格子每分钟有不同的概率钓上鱼,cc一直在坐标(x,y)的格子钓鱼,而ss每分钟随机钓一个格子.问t分钟后他们谁至少钓到一条鱼的概率大?为多少? 输入 ...
- /* * 编程第三题(20分) 打印所有的水仙花数。所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身。(例153=1*1*1+3*3*3+5*5*5) */
题目: /* 编程第三题(20分) 打印所有的水仙花数.所谓水仙花数是指一个三位数,其各位数字的立方和等于该数本身.(例153=111+333+555) */ 我是用java做的 public cla ...
- CSDN日报20170513 ——《腾讯2017校招实习生面试总结》
程序人生 | 腾讯2017校招实习生面试总结 作者:十枚硬币 一定不轻易放弃,一直准备,再准备.越早准备越好.接下来,就是计划着六月中旬去深圳了,希望两个月的实习能最终换来校招 Offer. 点击阅读 ...
- 腾讯2019暑期实习生提前批CV岗笔试题
目录 第一题 题意 思路 代码 第二题 题意 思路 代码 第三题 题意 思路 代码 第四题 题意 思路 代码 第五题 题意 思路 代码 笔试共有5道编程题,每道题20分,两个小时.以下内容的编写全凭记 ...
- 乐视2017暑期实习生笔试题(二)
第二题: 传送门 [编程题] 困兽之斗 经过深思熟虑之后,小贱君打算去M国闯一闯,那是一个古老的东方国度,传说有很多高阶魔法师,他想成为一名伟大的魔法师,将来征服星辰大海. 经过千辛万苦,小贱君终于来 ...
- 华为2017暑期实习生面试体会
今天到广州嘉鸿华美达酒店参加了华为2017年实习生的面试...总体感觉比较混乱,而且看到身边好多大神同学都被刷了,有点震惊,下面就讲讲体会. 首先是一面等候区,一群人坐在一个区域里,等着面试官出来叫人 ...
- 【腾讯】2017暑期实习生
不难,但是还是做了很久,需要努力努力努力努力 [编程题]构造回文 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢? 输出需要删除的字符个数. 输入描述 ...
- 2017百度实习生招聘笔试真题编程题集合
1,买帽子 AC代码如下: import java.util.HashSet; import java.util.Scanner; import java.util.Set; import java. ...
- 【笔试】美团2020暑期实习生编程题
幸运星 观星的时候,一种常用的方式是画出类似于正方形的区域内,确定其中所有星星的坐标.现在我们在星空(一个无限大的二维平面)上建立坐标系,由于星星很小,我们忽略它的面积,认为每个星星是一个点.且所有星 ...
最新文章
- IDEA那些既好用又好玩的30多款宝贝插件,你知道多少?
- 计算机5G英语文献,5G移动网络外文文献翻译2018中英文.docx
- burpsuit学习--修改来源地址
- foo、bar到底是什么意思
- navicat连接本地MySQL8.0.19报1251错误的解决办法
- CentOS上安装Jekins
- 泛型TListT Generics.Collections单元
- 河南省哪个单招学校学计算机最好,河南单招走哪个学校好?「公办大学扩招」...
- 每日英语:Foreign Tourists Skip Beijing
- iview“官方“实现的右键菜单
- 大数据可视化有哪些作用和优点
- [电路]5-电压源、电流源的串联和并联
- wifi 验证加密 总结
- 【系统分析师之路】2015年系统分析师上午综合知识真题
- 上海职称英语计算机,上海职称英语考试
- PDF复制乱码 -- 原因及解决方案
- 抖音小程序可做类目--资讯
- 【转】微信小程序模板消息无限制群发
- 计算机作业毕业论文排版,大学计算机练习作业—毕业论文的排版
- FFmpeg学习日记2