荣耀软件开发工程师-嵌入式笔试 9-11

《嵌入式软件开发笔试与面试手册》https://blog.nowcoder.net/zhuanlan/jvN8gj

嵌入式软件笔试-2023年真题汇总https://blog.nowcoder.net/zhuanlan/0oDWVm

第一题

某项目组组织举办"明日之星"评选活动,投票采用无记名方式,投票后整理出投票清单,最后根据投票和评选规则选出一名“明日之星"

评选规则:

1)票数最多者当选

2)票数相同的,根据员工姓名排序,字母序号越小排前面,a > b > cA>B>C;如果姓名之间有包含关系,短的姓名排在长姓名的前面,Tom > Tomy

输入描述

输入为投票清单,用字符串表示,投票姓名之间用英文逗号隔开,中间不带空格,例如:Tom,Lily,Tom,Lucy,Lucy,Jack

输入要求:

1)员工名字只包含大小写字母,首字母大写,其他字母小写

2)总票数n: 0<n<100

输出描述

1)非法输入直接返回:error.0001

2)输入合法,返回当选“明日之星"员工的名字

示例1

输入

Tom,Lily,Tom,Lucy,Lucy,Jack

输出

Lucy

说明

TomLucy投票数相同,Lucy排序优于Tom

 

示例2

输入

Tom,Lily,Tom,Lucy,Lucy,Tom,Jack

输出

Tom

说明

Tom得票数最多

#include <iostream>
#include <sstream>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

// 判断姓名是否合法
bool isValidName(const string& name) {
    if (name.empty()) return false;
    if (!isupper(name[0])) return false;  // 首字母必须大写
    for (int i = 1; i < name.size(); ++i) {
        if (!islower(name[i])) return false;  // 其他字母必须小写
    }
    return true;
}

string findStarOfTomorrow(const string& votes) {
    stringstream ss(votes);
    string name;
    map<string, int> voteCounts;

    // 分割字符串并计票
    while (getline(ss, name, ',')) {
        if (!isValidName(name)) return "error.0001";
        voteCounts[name]++;
    }

    // 查找票数最高且字典序最小的名字
    pair<string, int> result("", 0);
    for (const auto& entry : voteCounts) {
        if (entry.second > result.second || (entry.second == result.second && entry.first < result.first)) {
            result = entry;
        }
    }

    return result.first;
}

int main() {
    string input;
    getline(cin, input);

    string result = findStarOfTomorrow(input);
    if (result == "error.0001") {
        cout << result << endl;
    } else {
        cout << result << endl;
    }

    return 0;
}

 

第二题

输入2个序列,第一个序列为复数的实部,第二个序列为复数的虚部,计算复数的绝对值,并按照绝对值从大到小排序,并打印出来(保留整数部分打印出来即可)

输入描述

第一个序列为复数的实部,起始和结束用中括号,参见示例格式。

第二个序列为复数的虚部,起始和结束用中括号,参见示例格式。

输出描述

按照绝对值从大到小排序并打印出来,两个绝对值中间加空格

示例1

输入

[5041 5761 4691 672 5172 -9735 -9907 -4906 2880 9222]

[3740 3871 3171 1886 163 19

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏主要发布嵌入式软件开发相关岗位2023年(2024届)的笔试真题(嵌入式软件开发、通用软件开发、C/C++软件开发、算法工程师、数据开发、测试开发等)主要是算法编程题,其中一些岗位笔试含有对应的选择题、填空题、简单题。

全部评论
大家都a了多少
点赞 回复 分享
发布于 2023-09-12 00:15 北京

相关推荐

jack_miller:我给我们导员说我不在这里转正,可能没三方签了。导员说没事学校催的时候帮我想办法应付一下
点赞 评论 收藏
分享
有工作后先养猫:太好了,是超时空战警,我们有救了😋
点赞 评论 收藏
分享
评论
2
2
分享
牛客网
牛客企业服务