2019招商银行信用卡中心秋招IT笔试编程题总结

1.给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符:
‘A’ : Absent,缺勤
‘P’ : Present,到场
如果一个员工的考勤纪录中不超过两个’A’(缺勤),那么这个员工会被奖赏。
如果你作为一个员工,想在连续N天的考勤周期中获得奖赏,请问有多少种考勤的组合能够满足要求

解答:
该题其实就是组合问题,可以归结为下面的公式:

代码实现之:

package Day53;import java.util.Scanner;/*** @Author Zhongger* @Description 员工的考勤纪录问题* @Date 2020.3.27*/
public class Main1 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int n = scanner.nextInt();System.out.println(1+n+n*(n-1)/2);}
}

2.一条包含字母 A-Z 的消息通过以下方式进行了编码:

'A' -> 1
'B' -> 2
...
'Z' -> 26

给定一个只包含数字的非空字符串,请计算解码方法的总数。

例如
输入:“12”
输出:2
解释:“12”可以被解码成‘A’,’B‘或者’L‘,故有两种解码方法

这题又是一道动态规划类的题目,思路如下:

当前位置的编码方式需要根据前面的步骤来计算;
举例:
1226
当前位置:1 -->编码方式: 1
当前位置:2 -->编码方式:1 2 ; 12
当前位置:2 -->编码方式:1 2 2 ;12 2 ;1 22
当前位置:6 -->编码方式:1 2 2 6 ; 12 2 6 ; 1 22 6 ; 1 2 26 ; 12 26
规律总结:
如果当前数字不是0,则判断 它和前一位数字组合是否大于26,如果不大于26,则可以通过组合形式形成新的编码方法,如果和前一位组合后大于26,则只能单独出道;可以看出,如果可以组合,则是在dp[i-2] 的基础上进行组合,如果不能组合即单独出道,即在dp[i-1] 的基础上单独出道,如果又能单独出道又能组合,则dp[i] = dp[i-1] + dp[i-2]

package Day53;import java.util.Scanner;/*** @Author Zhongger* @Description 给定一个只包含数字的非空字符串,请计算解码方法的总数。* @Date 2020.3.27*/
public class Main2 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();int count = decodeMethods(str);System.out.println(count);}public static int decodeMethods(String str){if (str==null||("".equals(str))){return 0;}int[] dp = new int[str.length()+1];dp[0]=1;dp[1]=1;for (int i = 2; i < str.length()+1; i++) {//如果该位不为'0',说明该位单独成字母合法if (str.charAt(i-1)!='0'){dp[i]+=dp[i-1];}//如果后两位能组成"1x"(x为任意数字)或者"2x"(x小于7),说明最后两位组成字母合法if (str.charAt(i-2)=='1'||(str.charAt(i-2)=='2'&&str.charAt(i-1)<='6')){dp[i]+=dp[i-2];}}return dp[str.length()];}
}

3.公司组织团建活动,到某漂流圣地漂流,现有如下情况:
员工各自体重不一,第 i 个人的体重为 people[i],每艘漂流船可以承载的最大重量为 limit。
每艘船最多可同时载两人,但条件是这些人的重量之和最多为 limit。
为节省开支,麻烦帮忙计算出载到每一个人所需的最小船只数(保证每个人都能被船载)。

输入描述:

第一行输入参与漂流的人员对应的体重数组,
第二行输入漂流船承载的最大重量

输出描述:

所需最小船只数

本题采用贪心算法

package Day53;import java.util.Arrays;
import java.util.Scanner;/*** @Author Zhongger* @Description 载到每一个人所需的最小船只数* @Date 2020.3.27*/
public class Main3 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String s = scanner.nextLine();//人的体重String[] people = s.split(",");int[] peopleArr = new int[people.length];for (int i = 0; i < people.length; i++) {peopleArr[i]=Integer.parseInt(people[i]);}int limit=scanner.nextInt();System.out.println(getMinNums(peopleArr, limit));}public static int getMinNums(int[] people,int limit){Arrays.sort(people);//将人的体重从小到大排序int left=0;//左指针int right=people.length-1;//右指针int res=0;//需要的船数while (left<right){if (people[left]+people[right]<=limit){//体重最轻+最重的可以上船left++;right--;}else {//体重最重的上船right--;}res++;//船数加一}if (left==right){//只剩下最后一个人了,那就再派一艘船来载res++;}return res;}
}

2019招商银行信用卡中心秋招IT笔试编程题总结相关推荐

  1. 招商银行信用卡中心21届实习笔试编程题

    第一题 镜像字符串 给一个序列x,如果x和它的逆序列y的每一位都是镜像关系,则输出"yes"否则输出"no" 1镜像1,2镜像5,3镜像8,4镜像7,6镜像9. ...

  2. 2019年字节跳动2020届秋招在线笔试真题(后端开发工程师)

    2019年字节跳动2020届秋招在线笔试真题(后端开发工程师) 第一题 第二题 第三题 第四题 第一题 第二题 第三题 第四题 字节跳动的题,对于我这个菜鸟来说确实很难,对一半都做不到.还得继续努力啊 ...

  3. 23届秋招阿里笔试算法题

    import java.util.Scanner;//23届秋招阿里笔试第一题:二进制求解(100%) public class Main1 {public static void f1(int n) ...

  4. 23届秋招百度笔试算法题

    import java.util.Scanner;//23届秋招百度笔试第一题:暴力(100%) public class Main10 {public static void main(String ...

  5. 腾讯 2015秋招笔试题 编程题2:九宫格填数

    腾讯 2015秋招笔试题 编程2:九宫格填数 题目 2: 有下图的题解,请用 C/C++ 代码来列出满足下图 0-100 内的所有答案. 配合加减乘除,使得九宫格横竖都等于4. 智力冲浪 数字推理 请 ...

  6. 招商银行信用卡中心春招秋招数据方向数据分析数据挖掘数据开发笔试题(持续更新)

    1.Spark支持的分布式部署方式中哪个是错误的 Standlone Spark on mesos Spark on YARN Spark on local Spark有3种运行模式(分布式部署方式) ...

  7. 【2022】招商银行信用卡中心春招实习生技术岗A卷

    1.[测试方向]用较大流量去模拟用户的行为去测试软件,这个一般叫做什么? 2.使用ps aux|grep redis-server命令,查找结果如下,那么 redis-server运行的端口号为? 3 ...

  8. 【2022】招商银行信用卡中心春招实习生技术岗B卷

    1. 一个班级的学生分数表如下: CREATE TABLE IF NOT EXISTS students ( s_id int(11) PRIMARY KEY, s_name varchar(22) ...

  9. 牛客--2019招商银行信用卡中心--员工考勤记录

    题目描述: 给定一个字符串来代表一个员工的考勤纪录,这个纪录仅包含以下两个字符: 'A' : Absent,缺勤 'P' : Present,到场 如果一个员工的考勤纪录中不超过两个'A'(缺勤),那 ...

  10. 2019年途家 秋招 研发笔试

    选择题编程题都不怎么难.主要看下编程题. 第一道题就比较简单的. #include "iostream" using namespace std;int Max(int m,int ...

最新文章

  1. 第四十二篇 面对对象进阶
  2. php混合运算计算器,混合运算计算器
  3. 欢乐纪中某B组赛【2019.1.20】
  4. vivo手机怎么投屏到电脑_投屏软件电脑加手机投屏软件投屏
  5. python做什么模型_主题模型初学者指南[Python]
  6. 数据挖掘初次接触!学习代码
  7. mysql 批量插入数据
  8. 浅谈程序猿简历的写法,你会如何写你的简历呢。
  9. 工具推荐——Snipaste
  10. 2寸的照片长宽各是多少_2寸-2寸照片的长宽分别是多少厘米 – 手机爱问
  11. 芝加哥大学计算机博士年薪,2020年芝加哥大学博士含金量
  12. 2018年阅读随笔记录(持续更新)
  13. vue中使用防抖和截流
  14. 蓝鲸RFID固定资产管理系统
  15. 感谢同济子豪兄的分享-关于RCNN论文的学习(二)
  16. 邮箱邮件服务器迁移服务器要多久生效,邮件服务器迁移方案让企业邮箱安心“搬家”...
  17. linux pyinstaller打包python文件
  18. Knockout绑定语法
  19. vscode开发wdk
  20. 大数据决策的五个阶段

热门文章

  1. 如何用python爬取下载微博视频_Python通过抓包和使用cookie爬取微博完全讲解(附视频)-阿里云开发者社区...
  2. 2022-2027年中国稻壳提纯硅产品市场竞争态势及行业投资前景预测报告
  3. 《富爸爸穷爸爸》--读书笔记(5)-2020
  4. IDM与其他下载器加速器优缺点介绍
  5. springMVC文件的上传和页面静态化技术
  6. Java基本sql_SQL基本语句
  7. 迈克菲实验室:2018五大网络安全威胁
  8. EDA 电子设计自动化VHDL系列课程1--加【减】法器的设计
  9. 关于阿里云主机数据丢失问题,是常态还是个例?如何保障数据安全?...
  10. Python爬英雄联盟lol全英雄皮肤