3.28饿了么26后端暑期实习笔试
23投递
8单选 7多选 3编程
📖笔试问题:
第一题:
输入k,字符串s,s串k倍的地方大小写转换,非k倍的地方转成ascii码,变为一个新串。然后输入q表示输入q次l,r,输入l,r区间内的字符。
第二题:
输入T次数n,求最小的数m满足nmodm为0且n/m是质数
第三题:
输入n数字表示设备,输入k表示取k个为一个集群,最后输出每个集群内部异或后的数的和
a出了前两道
#软件开发笔面经#
8单选 7多选 3编程
📖笔试问题:
第一题:
输入k,字符串s,s串k倍的地方大小写转换,非k倍的地方转成ascii码,变为一个新串。然后输入q表示输入q次l,r,输入l,r区间内的字符。
第二题:
输入T次数n,求最小的数m满足nmodm为0且n/m是质数
第三题:
输入n数字表示设备,输入k表示取k个为一个集群,最后输出每个集群内部异或后的数的和
a出了前两道
#软件开发笔面经#
全部评论
佬,我有个问题,我是模拟答案是对的,但提交答案就错了怎么回事呀
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int t=in.nextInt();
for(int i=0;i<t;i++){
int n=in.nextInt();
//Main a=new Main();
int x=charge(n);
System.out.println(x);
}
in.close();
}
public static boolean bool(int a){
if(a<2){
return false;
}
for(int i=2;i*i<=a;i++){
if(a%i==0){
return false;
}
}
return true;
}
public static int charge(int x){
if(bool(x)){
return 1;
}
for(int i=2;i*i<=x;i++){
if(x%i==0){
int primary=x/i;
if(bool(primary)){
return i;
}
}
}
return 0;
}
三道题都暴力就行了,第三题用回溯,数据类型 long 不然只过 25%
前两道一开始一题都没做出来,多对ASSCII码根本不熟悉。最后半小时试了各种方法('a'-0,'a'-'0'什么的)终于试出来了。倒数第二题也是,直接暴力求素数。第三题异或为什么不能直接用^
最后一题很简单啊,dfs或者转成二进制判断就行n2^n随便过
佬,8对应的m是什么
第一题每个询问里面两个字符串长度不一致咋处理的呀?直接先转再打印就超时了
第三道那个异或和到底是什么啊,写了一个多小时最高通过率37.5%
相关推荐

点赞 评论 收藏
分享
03-26 12:41
哈尔滨工业大学(威海) 算法工程师 点赞 评论 收藏
分享