第一批

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. 062_html多媒体
  2. arouter跨module传递消息_消息队列中间件(二)使用 ActiveMQ
  3. C++ 标准库类型 set
  4. 【mysql学习】疑问点记录
  5. lesson1-python3运算符
  6. 直接用自己服务器做图床可以吗_我花 9 块钱搭了一个“私人图床”
  7. Exercise 12: Prompting People
  8. React Native之(var和let区别 )(简单解构)(map对象遍历)(可变顺序参数和不可以变顺序参数函数)
  9. 交接文档怎么写_如何最快速的交接工作
  10. 表情识别(五)--MBP+CNN
  11. Ubuntu 基础系列篇
  12. datagrid与jqgrid区别
  13. 韩顺平循序渐进学java 第18讲 查找
  14. Java面试:反射机制
  15. html 图片触碰有放大效果,CSS3 鼠标滑过图片突出放大效果
  16. sql脚本 windows导出 linux乱码,mysql query browser中文乱码的解决方法
  17. Mysql8数据库导到Mysql5数据库,报错Unknown collation: 'utf8mb4_0900_ai_ci'
  18. android开发代码实现对Apk签名,如何对apk进行签名
  19. Gartner发布2021年新兴技术成熟度曲线
  20. python程序中每条语句以分号结尾,在Python程序中,每条语句末尾必须添加分号。...

热门文章

  1. 骑行318、 2016.7.31
  2. Makefile中的wildcard用法
  3. 平安京因服务器升级维护无法,《阴阳师》手游12月31日维护更新公告
  4. QNX系列:五、资源管理器(1)官方文档的翻译
  5. 微信小程序中如何打开公众号文章(node版)
  6. Endurance International Group任命曼尼什达拉尔为亚太区董事总经理
  7. 硅谷之行 (21) 加州的天空
  8. 做软件还是做电商,跪舔还是尊严?
  9. 数字藏品的价值是什么?
  10. Unity切割图片:把一张图片中的物体裁成多个单独的游戏物体