BiliBili2020校招笔试题
第一批
1.最小操作次数
题目描述:
给出两个单词word1和word2,计算出将word1 转换为word2的最少操作次数。
你总共三种操作方法:
插入一个字符
删除一个字符
替换一个字符
输入例子1:
abc
abd
输出例子1:
1
例子说明1:
把c->d,只需要一次操作
题解:与leetcode1143一致,找到两个字符串最长公共子序列即可。
import java.util.Scanner;/*** 题目:将字符串a变成b,可以执行三种操作插入、删除、修改,求最少操作数*/
public class test01 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String a=sc.nextLine();String b=sc.nextLine();int res=longResult(a,b);System.out.println(Math.max(a.length(),b.length())-res);}public static int longResult(String a,String b){char[] ch1=a.toCharArray();char[] ch2=b.toCharArray();int[][] dp=new int[ch1.length+1][ch2.length+1];for(int i=1;i<dp.length;i++){for(int j=1;j<dp[0].length;j++){if(ch1[i-1]==ch2[j-1])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=Math.max(dp[i-1][j],dp[i][j-1]);}}return dp[ch1.length][ch2.length];}
}
2.连续整数求和
题目描述:
给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9)
输入例子1:
5
输出例子1:
2
例子说明1:
5 = 5 = 2 + 3,共有两组连续整数([5],[2,3])求和后为 5。
题解:等差数列求和。
题目问题等价于:N=(a+a+k-1)k/2;【a指数列开始的数字,k指数列长度】
等价于:ak=N-(k-1)*k/2;
即要求:(k-1)*k/2<N && (N-(k-1)*k/2)能被k整除
import java.util.Scanner;/*** leetcode829* 题目:给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9)*/
public class test02 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);int N=sc.nextInt();int res=CalMax(N);System.out.println(res);}public static int CalMax(int N){int count=0;for(int i=1;i*(i-1)/2<N;i++){int tmp=N-(i-1)*i/2;if(tmp%i==0)count++;}return count;}}
3.字符串切分
题目描述:
从标准输入读取字符串,按照指定的两层分隔符切分成多对key-value,依次输出到标准输出中。
注意:仅输出key和value都为非空串的pair。
输入例子1:
# : a:3#b:8#c:9
输出例子1:
3
a 3
b 8
c 9
题解:
- 先获取间隔符和关系符
- 用split(间隔符)得到分离后的字符串数组
- 用contains(关系符)检验各个字符串是否标准
- 用replace(关系符, 空格)输出
import java.util.Scanner;public class test03 {public static void main(String[] args) {Scanner sc=new Scanner(System.in);String str=sc.nextLine();if(str.length()<4)System.out.println(0);else {char a = str.charAt(0);char b = str.charAt(2);String[] strs = str.substring(4).split(a + "");int len = strs.length;for (String s : strs) {if (!s.contains(b + ""))len--;}System.out.println(len);if (len > 0) {for (String s : strs) {if (s.contains(b + ""))System.out.println(s.replace(b, ' '));}}}}
}
第二批:
1.原地翻转句子中单词的顺序,但单词内字符的顺序不变。要求:空间复杂度O(1),时间复杂度O(n)。
public class Main{public String reverseWords(String s) {s=s.trim();StringBuilder sb=new StringBuilder();int i=s.length()-1,j=i;while (i>=0){while (i>=0 &&s.charAt(i)!=' ') i--;sb.append(s.substring(i+1,j+1)+" ");while (i>=0 &&s.charAt(i)==' ') i--;j=i;}return sb.toString().trim();}
}
2.输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。
import java.util.Arrays;public class Main {public String minNumber(int[] nums) {String[] str=new String[nums.length];for(int i=0;i<nums.length;i++){str[i]=String.valueOf(nums[i]);}Arrays.sort(str,(x,y)->(x+y).compareTo(y+x));StringBuilder sb=new StringBuilder();for (String s:str)sb.append(s);return sb.toString();}
}
3.有为N件物品,它们的重量w分别是w1,w2,…,wn,它们的价值v分别是v1,v2,…,vn,每件物品数量有且仅有一个,现在给你个承重为M的背包,求背包里装入的物品具有的价值最大总和?
public class Main{public int bag(int W,int N,int[] weight,int[] values){int[][] dp=new int[N+1][W+1];for(int i=0;i<dp.length;i++)dp[i][0]=0;for(int i=0;i<dp[0].length;i++)dp[0][i]=0;for(int i=1;i<dp.length;i++){for(int j=1;j<dp[0].length;j++){if(weight[i-1]>j)dp[i][j]=dp[i-1][j];elsedp[i][j]=Math.max(dp[i-1][j],dp[i-1][j-weight[i-1]]+values[i-1]);}}return dp[N][W];}
}
BiliBili2020校招笔试题相关推荐
- 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...
原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...
- 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个
要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系. 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部 ...
- 小米运维部14年校招笔试题A的个人答案
15年准备实习生面试时答的题,仅供参考 具体题目详见 http://www.tuicool.com/articles/eYRZBr http://noops.me/?p=1154 一.linux基础 ...
- 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结
剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...
- java校招笔试题目_Java校招笔试题
2020校招笔试题答案及评分标准 满分100分 时间1小时 一.简答题: (5分)写出你用过的linux命令,举例说明其中几个的具体用法. 答案:略.评分标准:正确五个,1分一个. (5分)写出TCP ...
- 凑硬币(58同城2017校招笔试题)
凑硬币(58同城2017校招笔试题) 暴力破解,循环递归实现,代码如下: /** * 暴力破解,循环递归,找出了所有可能的组合并进行了存储,* 在循环递归的时候,因为选取的分类相互是有重叠的,生成的递 ...
- 剑指Offer——京东校招笔试题+知识点总结
剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...
- 数据分析真题日刷 | 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷
今日真题 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷(来源:牛客网) 题型 客观题:单选5道,不定项选择10道 主观题:问答4道 完成时间 90分钟 牛客网评估难度系数 ...
- 2020万得技术校招笔试题(软件开发)
2020万得技术校招笔试题(软件开发) 不定项选择题(共5题,时间5分钟) 1. 在浏览器中输入https://www.wind.com.cn, 其中https代表____ A. 地址 B. 资源 C ...
最新文章
- 最短路合集(Dijkstra、SPFA、Floyd以及路径还原模板)
- vue渲染大量数据如何优化_Vue3 Compiler 优化细节,如何手写高性能渲染函数
- 一些oj的返回结果:通过结果找错误,debug。
- 使用 GDB 恢复堆栈信息
- 导出库的版本_了解 JavaScript 模块系统基础知识,搭建自己的库
- 一台新云主机nodejs项目部署过程
- 活动执行手册_如何从一无所知到独立规划陈列手册?
- 从零开始的全栈工程师——underscore
- c++反汇编代码分析--偷调函数
- ISA Server 2004服务器发布DHCP服务器
- SpringCloud之 Feign的简单使用
- OC category(分类)
- 解压rar文件压缩包时出现“An error occurred while loading the archive”的解决办法
- 关于vs2008改变工程路径
- (转)用 Asterisk 搭建自己的免费 VoIP 服务器
- mmd动作:Bad End Night
- 斗战神单机版正在连接服务器,斗战神单机版完整
- 8266,永远滴神!美女设计师的「舌头控制器」,从此动动嘴就能玩游戏!
- Debezium系列之:安装部署debezium2.0以上版本的详细步骤
- 二阶系统阻尼比与稳定性的关系
热门文章
- 分类变量、有序变量、数值变量差异分析(二)t检验
- 领英linkedin使用手册—领英邮件类型,管理运用的方式方法
- 2020年医疗影像行业软镜专题研究报告
- 手把手教你建立私人数据检索库(二)
- 华为软件类校招 2014年9月3日 熟悉机考环境 1.记票统计 2.求最大递增数 3.Word Maze(单词迷宫)
- 华为上机题之Word Maze(单词迷宫)
- 计算机深度睡眠状态啥意思,什么是计算机的“深度睡眠”模式?
- 关于前端职业规划的一点思考
- mapstruct使用
- 服务器网口显示感叹号,业务服务器或更新服务器连接失败(认证失败,黄色感叹号)怎么回事?...