360笔试-2024.2.25

技术综合J卷

60分选择题

2道编程题

题目一好像是:

```java

/**

* @author xin麒

* @date 2024/2/25 16:38

* 第一行输入n

* 第二行输入一串数字,之间用空格隔开

* 每次操作将一些相同的数字和v相加(v可以为负数),计算最小操作次数

*/

public class Main {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

int n = Integer.parseInt(scanner.nextLine());

String[] split = scanner.nextLine().split(" ");

Map<String, Integer> map = new HashMap<>();

for(String s : split){

Integer count = map.get(s);

if (count == null){

map.put(s,1);

}else{

map.put(s,count + 1);

}

}

System.out.println(map.size() - 1);

}

}

```

题目2好像是:

```java

/**

* @author xin麒

* @date 2024/2/25 16:39

* 第一行输入n

* 第二行输入len=n的字符串s,每个字符在['1','9']

* 1可以用a,表示,2可以用b表示 ...... 26可用z表示

* 计算s的所有表示方式

* 例如:

* 2

* 11

* 输出:

* 2

* 解析:

* 11可以用aa来表示,也可以用k来表示,共2中表示方式

*/

import java.util.*;

public class Main{

public static void main(String[] args){

Scanner scanner = new Scanner(System.in);

int n = Integer.parseInt(scanner.nextLine());

String s = scanner.nextLine();

//判空

if(n == 0) {

System.out.println();

return ;

}

if(n == 1){

System.out.println(1);

return ;

}//long

long[] nums = new long[n];

nums[0] = 1;

char[] chs = s.toCharArray();

String str = "";

str += chs[0];

str += chs[1];

nums[1] = 1;

if(Integer.parseInt(str) <= 26) nums[1] = 2;

for(int i = 2;i < n;i++){

nums[i] = nums[i - 1] % 1000000007;

str = "";

str += chs[i - 1];

str += chs[i];

if(Integer.parseInt(str) <= 26) {

long tmp = nums[i - 2] % 1000000007;

nums[i] += tmp;

nums[i] %= 1000000007;

}

}

System.out.println(nums[n - 1] %1000000007);

}

}

```

全部评论
佬 这是测试还是开发的卷子啊
点赞 回复
分享
发布于 02-25 20:21 山东
哈哈哈 今天做了测开的。选择题是涉及范围是真广
点赞 回复
分享
发布于 02-26 00:23 北京
滴滴
校招火热招聘中
官网直投

相关推荐

1 12 评论
分享
牛客网
牛客企业服务