笔试时间:2023年3月29日 春招实习  第一题  题目:数字的圆圈  游游拿到了一串数字,她想知道这串数字一共有多少个圆圈?  提示:数字0,6,9这三种数字各有一个圆圈,数字8共有两个圆圈。  输入描述  一个字符串,仅有数字字符组成。  长度不超过100000。  输出描述  该字符串包含的圆圈的数量。  样例输入     123457890    样例输出     4    参考题解  直接枚举计算就行了。  C++:[此代码未进行大量数据的测试,仅供参考]  #include <iostream>#include <string>#include <unordered_map>using namespace std;int main() {    string s;    cin >> s;    unordered_map<char, int> dic;    for (char c : s) {        dic[c]++;    }    int res = 0;    res += dic['0'] + dic['6'] + dic['9'] + dic['8'] * 2;    cout << res << endl;    return 0;}  Java:[此代码未进行大量数据的测试,仅供参考]  import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        String s = scanner.next();        Map<Character, Integer> dic = new HashMap<>();        for (char c : s.toCharArray()) {            dic.put(c, dic.getOrDefault(c, 0) + 1);        }        int res = 0;        res += dic.getOrDefault('0', 0) + dic.getOrDefault('6', 0) + dic.getOrDefault('9', 0) + dic.getOrDefault('8', 0) * 2;        System.out.println(res);    }}  Python:[此代码未进行大量数据的测试,仅供参考]  s = input()from collections import Counterdic = Counter(s)res = 0res += dic['0'] + dic['6'] + dic['9'] + dic['8']*2print(res)  第二题  题目:好元素  游游定义一个排列中,满足以下条件的元素为”好元素“:对于第i个元素ai 而言,ai 是前i个元素的最大值。例如,[3,1,5,2,4],第一个和第三个元素是好元素。游游希望你构建一个长度为n的排列,其中有k个好元素,且任意两个好元素相邻。你能帮帮她吗?  排列的定义:由1到n的所有正整数组成的长度为n的数组,每个正整数正好出现一次。  输入描述  两个正整数n,k,用空格隔开。  1<=n<=105  1<=k<=[n//2]  输出描述  一行n个正整数,代表游游构造的排列。有多解的时候输出任意即可。  样例输入     5 2    样例输出     4 2 5 1 3    参考题解  贪心算法。  C++:[此代码未进行大量数据的测试,仅供参考]  #include <iostream>#include <vector>using namespace std;int main() {    int n, k;    cin >> n >> k;    vector<int> ans(n);    for (int i = 0; i < n; i++) {        ans[i] = i + 1;    }    int j = n - k;    int i = 0;    int pos = 0;    while (pos < k) {        swap(ans[i], ans[j]);        i += 2;        pos++;        j++;    }    for (int r : ans) {        cout << r << " ";    }    return 0;}  Java:[此代码未进行大量数据的测试,仅供参考]  import java.util.Scanner;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int n = scanner.nextInt();        int k = scanner.nextInt();        int[] ans = new int[n];        for (int i = 0; i < n; i++) {            ans[i] = i + 1;        }        int j = n - k;        int i = 0;        int pos = 0;        while (pos < k) {            int temp = ans[i];            ans[i] = ans[j];            ans[j] = temp;            i += 2;            pos++;            j++;        }        for (int r : ans) {            System.out.print(r + " ");        }    }}  Python:[此代码未进行大量数据的测试,仅供参考]  n, k = map(int, input().split(" "))ans = [i for i in range(1, n + 1)]j,i = n - k, 0pos = 0while pos < k:    ans[i], ans[j] = ans[j], ans[i]    i += 2    pos += 1    j += 1for r in ans:    print(r, end=" ")  第三题  题目:树上的染色  游游拿到一棵树,树的每条边有边权。游游准备选择一些边染成红色,她希望不存在两条染红的边共用同一个点,且最终染红边的边权之和尽可能大。你能帮帮她吗?  注:所谓树,即不包含重边、自环和回路的无向连通图。  输入描述  第一行输入一个正整数n,代表节点的数量。  接下来n-1行,每行输入三个正整数u,v,w,代表点u和点v之间有一条权值为w的无
点赞 0
评论 0
全部评论

相关推荐

我是985研究生,最近学校在组织开题,大家都在非常紧张地准备,但我一直进入不了状态,很想做但是心又很浮躁。但我的室友们感觉都非常认真,每天醒来就开始看论文,睡着前最后一件事还是在看论文,我非常焦虑。我感觉自己甚至有点把大家当做假想敌了。这种比较心态还存在于生活的各种方面:看到有钱的同学会非常羡慕,看到朋友圈里面环游世界的留学生同学也会羡慕,看到那些工作后有自己的钱而过上较为阔绰的生活的时候还是羡慕,就仿佛只有自己一个人在阴暗爬行。而且这些比较是每时每刻的,为了不比较,我已经关闭了朋友圈,但是每次偶尔刷一下还是会难受很久。我知道比较是偷走幸福的小偷,但我好像控制不了,感觉自己是一个偷窥别人生活的...
若怜君欢:担心开题搞砸了,幻想拥有别人的生活,本质上是因为自卑,楼主小时候大概率是留守儿童或者父母关系很紧张,导致楼主没有安全感、焦虑、内耗。 这样的情况最好的办法就是建立自信和降低期待,建立自信不是一蹴而就,而是循序渐进,比如告诉自己允许自己第一次没把事情做好,失败了能搞清楚其中缘由而不是全盘否定自己,失败不是终点,放弃才是;降低期待只要记住一句话即可,能伴随你一生的,只有经验和学识,所以你对事情的态度应该更多地去思考它是否能带来学识和经验的增长,而不是仅仅用短期的利益作为唯一期待。 人生不是一成不变的,它是可以迭代更新的,去归纳总结自身的不足并结合实际去改进,去尝试一些新的思路和方法,不要固执钻牛角尖,也不要反复横跳,为自己设立一个高度聚集的精神内核,内核之上可以去尝试一切有利于自己更好的方式 以上就是我个人对生活的理解,共勉
点赞 评论 收藏
分享
FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
04-14 20:10
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务