第一批

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指数列长度】
等价于:a
k=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

题解:

  1. 先获取间隔符和关系符
  2. 用split(间隔符)得到分离后的字符串数组
  3. 用contains(关系符)检验各个字符串是否标准
  4. 用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校招笔试题相关推荐

  1. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...

    原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...

  2. 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个

    要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系. 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部 ...

  3. 小米运维部14年校招笔试题A的个人答案

    15年准备实习生面试时答的题,仅供参考 具体题目详见  http://www.tuicool.com/articles/eYRZBr http://noops.me/?p=1154 一.linux基础 ...

  4. 剑指Offer——腾讯+360+搜狗校招笔试题+知识点总结

    剑指Offer--腾讯+360+搜狗校招笔试题+知识点总结 9.11晚7:00,腾讯笔试.选择题与编程.设计题单独计时. 栈是不是顺序存储的线性结构啊? 首先弄明白两个概念:存储结构和逻辑结构. 数据 ...

  5. java校招笔试题目_Java校招笔试题

    2020校招笔试题答案及评分标准 满分100分 时间1小时 一.简答题: (5分)写出你用过的linux命令,举例说明其中几个的具体用法. 答案:略.评分标准:正确五个,1分一个. (5分)写出TCP ...

  6. 凑硬币(58同城2017校招笔试题)

    凑硬币(58同城2017校招笔试题) 暴力破解,循环递归实现,代码如下: /** * 暴力破解,循环递归,找出了所有可能的组合并进行了存储,* 在循环递归的时候,因为选取的分类相互是有重叠的,生成的递 ...

  7. 剑指Offer——京东校招笔试题+知识点总结

    剑指Offer--京东校招笔试题+知识点总结 笔试感言 经过一系列的笔试,发觉自己的基础知识还是比较薄弱的,尤其是数据结构和网络,还有操作系统.工作量还是很大的.做到精确制导的好方法就是在网上刷题,包 ...

  8. 数据分析真题日刷 | 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷

    今日真题 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷(来源:牛客网) 题型 客观题:单选5道,不定项选择10道 主观题:问答4道 完成时间 90分钟 牛客网评估难度系数 ...

  9. 2020万得技术校招笔试题(软件开发)

    2020万得技术校招笔试题(软件开发) 不定项选择题(共5题,时间5分钟) 1. 在浏览器中输入https://www.wind.com.cn, 其中https代表____ A. 地址 B. 资源 C ...

最新文章

  1. 最短路合集(Dijkstra、SPFA、Floyd以及路径还原模板)
  2. vue渲染大量数据如何优化_Vue3 Compiler 优化细节,如何手写高性能渲染函数
  3. 一些oj的返回结果:通过结果找错误,debug。
  4. 使用 GDB 恢复堆栈信息
  5. 导出库的版本_了解 JavaScript 模块系统基础知识,搭建自己的库
  6. 一台新云主机nodejs项目部署过程
  7. 活动执行手册_如何从一无所知到独立规划陈列手册?
  8. 从零开始的全栈工程师——underscore
  9. c++反汇编代码分析--偷调函数
  10. ISA Server 2004服务器发布DHCP服务器
  11. SpringCloud之 Feign的简单使用
  12. OC category(分类)
  13. 解压rar文件压缩包时出现“An error occurred while loading the archive”的解决办法
  14. 关于vs2008改变工程路径
  15. (转)用 Asterisk 搭建自己的免费 VoIP 服务器
  16. mmd动作:Bad End Night
  17. 斗战神单机版正在连接服务器,斗战神单机版完整
  18. 8266,永远滴神!美女设计师的「舌头控制器」,从此动动嘴就能玩游戏!
  19. Debezium系列之:安装部署debezium2.0以上版本的详细步骤
  20. 二阶系统阻尼比与稳定性的关系

热门文章

  1. 分类变量、有序变量、数值变量差异分析(二)t检验
  2. 领英linkedin使用手册—领英邮件类型,管理运用的方式方法
  3. 2020年医疗影像行业软镜专题研究报告
  4. 手把手教你建立私人数据检索库(二)
  5. 华为软件类校招 2014年9月3日 熟悉机考环境 1.记票统计 2.求最大递增数 3.Word Maze(单词迷宫)
  6. 华为上机题之Word Maze(单词迷宫)
  7. 计算机深度睡眠状态啥意思,什么是计算机的“深度睡眠”模式?
  8. 关于前端职业规划的一点思考
  9. mapstruct使用
  10. 服务器网口显示感叹号,业务服务器或更新服务器连接失败(认证失败,黄色感叹号)怎么回事?...