笔试公司
时间 | 公司 | 平台 |
---|---|---|
2022年8月4日 12:00 - 2022年8月5日 12:00 | 海康威视 | 赛码 |
2022年8月5日 14:30 - 16:30 | 中国建设银行 | 牛客 |
2022年8月5日 19:00 - 20:40 | 趋势科技 | 牛客 |
2022年8月6日 10:00 - 12:00 | 美团 | 赛码 |
2022年8月6日 19:00 - 21:00 | 科大讯飞 | 牛客 |
考试内容
主要分类单选, 多选, 填空, 编程
单选, 多选主要考察计算机基础知识, 数据库, 操作系统, 数据结构, 算法等领域知识. 涉及主要语言为C语言, 多数以C语言代码的形式展示.
美团笔试为五道编程题, 不涉及单选多选
编程题为笔试重点, 占分比重大, 且必考
海康威视, 建行, 趋势科技, 科大讯飞编程题数量为1-3道, 美团为5道
编程题
- 如果一个字符串从前往后读, 从后往前读内容相同, 我们称他为回文串
如: ABBA
现输入一个字符串, 如果可以通过交换两个字符的位置使它构成回文串, 则输出Yes, 反之输出No.
输入: AABB
输出: Yes
- 银行业务中我们经常需要判断文字修改的相似度, 现有如下定义: 我们把对单个字符的增删改定义为一次修改, 两段文字的相似度定义为: 1-(修改数/最大文本长度). 输出文本相似度(保留两位小数).
输入: hello
输入: elp
输出: 0.40
- [趋势科技]邮件占位符, 我们在企业邮件中经常使用邮件模板, 如"%TIME%, %NAME%GOTO%ADDRESS%", 我们将模板按下面规则替换:
TIME: 2022NIAN
NAME: SOLITUDE
ADDRESS: CHINA
替换后的结果为"2022NIAN, SOLITUDEGOTOCHINA"
对于"%NAME%ADDRESS%“只替换第一个”%NAME%"
请你完成这个程序.
输入: %TIME%, %NAME%GOTO%ADDRESS%
输入: “TIME” “NAME” “ADDRESS”
输入: “2022NIAN” “SOLITUDE” “CHINA”
输出: 2022NIAN, SOLITUDEGOTOCHINA
- [美团]小美有两种礼物, 每个礼盒可以装三个礼物, 要求每个盒子必须有至少一个A礼物一个B礼物, 输出小美可以装多少包礼物
输入: 9 49
输出: 9
输入: 44 85
输出: 43
- [美团]输入一个数组, 只含有若干-1 0 1, 数组的前k项必须小于0, k项之后必须大于等于0, 输出最少有多少个项违规
输入: -1 1 0 1 -1 1
输出: 2
- [美团]小美有x个魔法石 魔法石正反两面 标有数字 只有当超过一半的魔法石正面数字相同的时候 才能使魔法最大化 小美可以每次反转一个魔法石 判断小美至少翻转多少魔法石可以使法阵最大?
输入: 5
输入: 8 5 3 5 5
输入: 2 9 5 4 3
输出: 0
- [美团]有字符串处理机制s=s+r(s)+“wow”, 现输入"meituan", 求第i位字符?
第一次处理结果: “meituannautiemwow”
第二次处理结果: “meituannautiemwowwowmeituannautiemwow”
第三次处理结果: “meituannautiemwowwowmeituannautiemwowwowmeituannautiemwowwowmeituannautiemwow”
输入: 16
输出: o
- [科大讯飞]输入一个字符串, 找到其中含有"e"的单词数量.
输入: I meet your come
输出: 2
- [科大讯飞]计算四边形面积
- [科大讯飞]输入字符串, 求符合"iflytek"的子序列数?(lc115)
输入: iffeclytek
输出: 2
public static void main(String[] args) {
String str = "iflytekiflytek";
int res = findIflytek(str);
System.out.print(res);
}
public static int findIflytek (String str) {
// write code here
String s = "iflytek";
int n = str.length();
int m = s.length();
int[][] dp = new int[m + 1][n + 1];
for (int i = 0; i <= n; i++) dp[0][i] = 1;
for(int i = 1; i <= m; i++){
for(int j = 1; j <= n; j++){
if(s.charAt(i - 1) == str.charAt(j - 1)){
dp[i][j] = dp[i - 1][j - 1] + dp[i][j - 1];
}else{
dp[i][j] = dp[i][j - 1];
}
}
}
return dp[m][n];
}