微众银行4月8日笔试题目及部分代码

第一题忘了拍,大致是n个朋友m个礼物,要求均分礼物,(1)可以花a元送红包打发走一位朋友;(2)花b元再买一件礼物,两种操作可以混着用,要求输出打发所有朋友的最小花费,感觉很简单但是就是只过了91%。
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();
        int m = sc.nextInt();
        int a = sc.nextInt();
        int b = sc.nextInt();
        if(n <= m){
            System.out.println(0);
            return;
        }
        long res = 0;
        res = Math.min(a,b) * (n - m);
        System.out.println(res);
    }
}
第二题 
AC,大致思路就是算一下该字符串能组成的最大回文长度,然后按差值奇偶性输出胜利者,本来以为“最优策略”的删除任意一个字符会很复杂,但是试了下就过了。
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int t = Integer.parseInt(sc.nextLine());
        for(int i = 0;i < t;i++){
            String word = sc.nextLine();
            int n = word.length();
            int len = huiLen(word);
            int num = Math.abs(len - n);
            if(num == 0){
                System.out.println("Cassidy");
            }else if(num % 2 == 0){
                System.out.println("Cassidy");
            }else{
                System.out.println("Eleanore");
            }
        }
    }
    public static int huiLen(String str) {
        int[] cnt = new int[58];
        for(char c : str.toCharArray()){
            cnt[c - 'A']++;
        }
        int res = 0;
        for(int i = 0;i < 58;i++){
            res += cnt[i] - (cnt[i] & 1);
        }

        return res < str.length() ? res + 1 : res;
    }
}
第三题
递归模拟只过了18%,不会写,蹲一波大佬们的思路。
选择题做的凑合吧也感觉不出来,至今没面试过的菜鸡仍然许愿有面试
#微众银行实习生招聘##微众银行##笔试题目#
全部评论
这估计是我人生中唯一一次全AC了。
5 回复
分享
发布于 2020-04-08 21:13
&第三题。先优先选次数多的,选完再选价值最大的
3 回复
分享
发布于 2020-04-08 21:06
阅文集团
校招火热招聘中
官网直投
第三题贪心AC
1 回复
分享
发布于 2020-04-08 21:03
第三题贪心就好
1 回复
分享
发布于 2020-04-08 21:04
酸了,我文本框敲代码
1 回复
分享
发布于 2020-04-08 21:04
第一题只过了64%,第二题AC,第三题45%
1 回复
分享
发布于 2020-04-08 21:05
第一题补充一个递归 #include<iostream> #include<vector> #include<algorithm> #include<map> using namespace std; int min_cost(int n, int m, int a, int b, map<pair<int, int>, int> &mp){     if(m % n == 0)  return 0;     pair<int, int> curr = make_pair(n, m);     if(mp.find(curr) != mp.end())  return mp[curr];     int cost = min(a + min_cost(n - 1, m, a, b, mp), b + min_cost(n, m + 1, a, b, mp));     mp[make_pair(n, m)] = cost;     return cost; } int main(){     int n, m, a, b;     while(cin >> n >> m >> a >> b){         map<pair<int, int>, int> mp;         cout << min_cost(n, m, a, b, mp) << endl;     }     return 0; }
1 回复
分享
发布于 2020-04-08 21:34
第三题python card = [[0,2],[1,1],[1,0],[1,0],[2,0]] point = 0 count = 1 ps = [] for i in card: print(i,i[1]) if (i[1] > 0): print(i) point +=i[0] count += i[1]-1 # card.remove(i) else: ps.append(i[0]) ps.sort() point +=sum(ps[len(ps)-count:]) print(point)
1 回复
分享
发布于 2020-04-09 00:04
第三题我是回溯+剪枝,时间超限
点赞 回复
分享
发布于 2020-04-08 21:06
第三题,贪心,我是弄了个二维数组记录,然后先按次数排序去累加次数,次数不增加了就跳出循环,然后再按价值排序,遍历直到没次数了。
点赞 回复
分享
发布于 2020-04-08 21:10
第一题动态规划,ac
点赞 回复
分享
发布于 2020-04-08 21:12
第一题如果n小于m的时候需要让n减到m%n==0的时候就可以ac了,第三题一个结构体排序完事,震惊.jpg 打死我也想不到用了sort也能ac
点赞 回复
分享
发布于 2020-04-08 21:17
我第一题死活一直73过不去,第二题第三题都ac了
点赞 回复
分享
发布于 2020-04-08 21:17
第一题,朋友少于礼物,就返回0么,难道不是为了平分,购买礼物或者走人么,当正好能整除的时候才是输出0呀,大佬能说一下么
点赞 回复
分享
发布于 2020-04-08 21:21
请问大佬的投递的岗位是什么?为何我做的是行测相关的笔试呢
点赞 回复
分享
发布于 2020-04-08 23:08
有大佬收到面试了吗?
点赞 回复
分享
发布于 2020-04-10 21:33
你们收到面试通知了吗?官网状态如何,我的还是在笔试中。。。。。
点赞 回复
分享
发布于 2020-04-13 21:53
全AC的我还没面试,可能选择题太菜了
点赞 回复
分享
发布于 2020-04-17 21:16

相关推荐

字节 后端 10k go
点赞 评论 收藏
转发
3 38 评论
分享
牛客网
牛客企业服务