【2021】微众银行校招技术类B卷
时长:120分钟 总分:100分
658浏览 2人已完成答题
题型介绍
题型 | 单选题 | 多选题 | 填空题 |
---|---|---|---|
数量 | 17 | 3 | 3 |
磁铁
假象一个绝对光滑的,高度很高的盒子,长度为,宽度为1。在其中,有许多的光滑铁块,铁块的每一个角一定位于整数坐标上。
由于宽度为1,我们可以用二维字符图来表示每一个铁块的位置。如下图是一个长度为4,其中有7个铁块的二维字符图('x'代表铁块,'o'代表没有铁块):
oooo
xooo
xoxo
xxxx
每一列的铁块数分别为3,1,2,1
由于重力的缘故,所有的铁块要么下面是盒子底面,要么下面是另一个铁块。现在,在盒子的右边增加一个强磁铁。所有右边没有其他铁块或边界的铁块会向右移动,直到撞上一个铁块和边界停下。
在上一张二维图上,加入磁铁后的字符图会变为:
oooo
ooox
ooxx
xxxx
每一列的铁块数分别为。可以证明,这样操作后所有铁块要么下面是盒子底面,要么下面是另一个铁块。
现在给你初始每一列有多少个铁块,请你计算,加入磁铁后每一列有多少铁块。
输入第一行包含一个数n,代表盒子的长度
接下来n个数,空格隔开,代表每一列原本有多少个铁块。
输出n个数,空格隔开,代表加入磁铁后每一列有多少个铁块。
输出样例 1 1 2 3假定字符集为{a,b,c,d,e,f},每个字符在文件中的出现次数分别为{...
执行下列程序的输出结果为( ) public class onetest ...
public class onetest {
public static void main(String args[]) {
String s = "xxxxxxxxxxxxxxx#123#456#zzzzz"
int n = s.indexOf("#")
int k = s.indexOf("#", n+1)
String s2 = s.substring(n+2, k)
System.out.println(s2)
}
}
下列代码输出结果为( ) class Animal { public vo...
class Animal {
public void show(Dog dog){
System.out.println("a")
}
public void show(){
System.out.println("b")
}
}
class Dog extends Animal {
public void show(Dog dog){
System.out.println("c")
}
public void show(){
System.out.println("d")
}
}
public class Base {
public static void main(String[] args) {
Animal animal = new Dog()
animal.show(new Dog())
animal.show()
}
}
以下代码执行输出结果为( ) public class Test{ pub...
public class Test{
public static void main(String args[]){
int a[] = new int[2]
try{
System.out.println(a[3])
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("Exception thrown: ArrayIndexOutOfBoundsException")
return
}
finally{
System.out.println("The finally statement is executed")
}
System.out.println("The test is end")
return
}
}
在下面的Java代码中,哪一行代码是错误的(): public class...
public class Test{
public static void main(String[] args) {
Parent b1 = new Child()
Child b2 = new Child()
b1.m1() //1
b1.m3() //2
b2.m1() //3
b2.m2() //4
}
}
class Parent{
public void m1(){}
public void m2(){}
}
class Child extends Parent{
public void m1(){}
public void m3(){}
}
public class Test{ private void test(...
private void test() {
System.out.println('1'+1+1)
}
static public void main(String[] a) {
new Test().test()
}
}
上面程序段输出结果为()
cn.test包中Person类定义如下,下列哪些方法可以获取class对...
class Person {
private String name
public Person(String name) {
this.name = name
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
}
节奏小师
现在你在玩一款游戏,叫做节奏小师。它有三种判定
P : Perfect完美,加200分。
G : Great很棒,加100分。
M : Miss错过,不加分也不扣分,但累计三次Miss就会输掉游戏。
另外有一种奖励是连击奖励。一旦连续三个Perfect之后,后续连击的Perfect分数将变成250分,但一旦打出了Great或者Miss则连击数将重新开始计算。
你的任务是根据游戏记录计算分数。特别地,失败记为零分。
输入描述:一行一个字符串,描述你的游戏记录。
对于前40%数据,保证字符串长度小于等于100
对于100%数据,保证字符串长度小于等于10000
输入样例: PPPPPGPPMP 输出描述:一行一个正整数表示得分
输出样例 1800数字的重排列
给一个数不包含前导0的数n,现在将n的各位数字的顺序重组,在这些数中,有多少个数是m的倍数?
例如112,重组后有三个数:112,121,211
输入包含两个数,n和m,含义如题面所示
输入样例: 112 4 输出描述:输出一个数,代表m的倍数的个数。
输出样例 1