小工具知识网

当前位置: 首页 > 行业知识 > 【荣耀笔试题汇总】2024-05-11-荣耀春招笔试题-三语言题解(CPP/Python/Java)

行业知识

【荣耀笔试题汇总】2024-05-11-荣耀春招笔试题-三语言题解(CPP/Python/Java)

2026-10-26 15:31:00 来源:互联网转载

大家好这里是清隆学长 ,一枚热爱算法的程序员

✨ 本系列打算持续跟新小米近期的春秋招笔试题汇总~

ACM银牌| 多次AK大厂笔试 | 编程一对一辅导

感谢大家的订阅➕ 和 喜欢

清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 清隆领取,会在飞书进行同步的跟新。

文章目录

    • 01.K小姐的字符串分类
      • 问题描述
      • 输入格式
      • 输出格式
      • 样例输入
      • 样例输出
      • 数据范围
      • 题解
      • 参考代码
      • 参考代码
      • 02.弗洛伊德的游戏
        • 题目描述
        • 输入格式
        • 输出格式
        • 样例输入
        • 样例输出
        • 数据范围
        • 题解
        • 参考代码
        • 03.字符串的循环移位包含问题
          • 问题描述
          • 输入格式
          • 输出格式
          • 样例输入
          • 样例输出
          • 数据范围
          • 题解
          • 参考代码
          • 写在最后
          • 清隆这边最近正在收集近一年互联网各厂的笔试题汇总,如果有需要的小伙伴可以关注后私信一下 清隆领取,会在飞书进行同步的跟新。

            01.K小姐的字符串分类

            问题描述

            K小姐是一位热爱编程的软件工程师,她最近在处理一批字符串数据时遇到了一些问题。这些字符串包含了合法和非法字符,合法字符包括数字(0-9)、小写字母(a-z)和大写字母(A-Z)。K小姐需要你帮助她编写一个程序,将这些字符串分类为合法字符串和非法字符串,并去除重复的合法字符串。

            输入格式

            输入包含多行,每行一个字符串。字符串的总数不超过 100,每个字符串的长度不超过 64。

            输出格式

            第一行输出所有合法且无重复的字符串,字符串之间用一个空格分隔。第二行输出所有非法的字符串,可能包含重复,同样用一个空格分隔。

            样例输入

            abcdef151 1acd12344234tjgaga'.ad--sabd123abcdef1234567890123456789012345678901234567890123456789012345678901234EDFGSDFGABCDEFCCCCa*b=1

            样例输出

            abc def acd123 44234tjg abd 123 abcdef 1234567890123456789012345678901234567890123456789012345678901234 EDFG SDFG ABC DEF CCCCaga' ad--s a*b=1

            数据范围

            • 字符串数量不超过 100。
            • 每个字符串长度不超过 64。

              题解

              本题主要考察字符串处理和集合的使用。首先,我们需要判断每个字符串是否为合法字符串。合法字符串只包含数字和字母。我们可以通过遍历字符串中的每个字符,检查它是否为字母或数字来完成这一判断。对于合法的字符串,我们使用一个集合来存储,以便去除重复项。对于非法的字符串,我们直接存入另一个列表。最后,按照题目要求输出这两个列表。

              参考代码

              参考代码

              • Python
                def process_strings():    import sys    input = sys.stdin.read    data = input().splitlines()        valid_set = set()    valid_list = []    invalid_list = []        for s in data:        if all(c.isalnum() for c in s):            if s not in valid_set:                valid_list.append(s)                valid_set.add(s)        else:            invalid_list.append(s)        print(" ".join(valid_list))    print(" ".join(invalid_list))if __name__ == "__main__":    process_strings()
                • Java
                  import java.util.*;public class Main {    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        Set validSet = new HashSet();        List validList = new ArrayList();        List invalidList = new ArrayList();                while (scanner.hasNextLine()) {            String s = scanner.nextLine();            boolean isValid = true;            for (int i = 0; i  0) System.out.print(" ");            System.out.print(validList.get(i));        }        System.out.println();        for (int i = 0; i  0) System.out.print(" ");            System.out.print(invalidList.get(i));        }        System.out.println();        scanner.close();    }}
                  • Cpp
                    #include #include #include #include using namespace std;int main() {    set validSet;    vector validList, invalidList;    string s;    while (cin >> s) {        bool isValid = true;        for (char ch : s) {            if (!isalpha(ch) && !isdigit(ch)) {                isValid = false;                break;            }        }        if (isValid) {            if (validSet.find(s) == validSet.end()) {                validList.push_back(s);                validSet.insert(s);            }        } else {            invalidList.push_back(s);        }    }    for (int i = 0; i  0) cout         if (i  0) cout     public static void main(String[] args) {        Scanner sc = new Scanner(System.in);        int n = sc.nextInt(), m = sc.nextInt();        double[][] u = new double[n][2];        for (int i = 0; i  u[i][0] >> u[i][1];    }    int ans = 0;    double minProd = 1e18;    for (int k = 0; k > v[i][0] >> v[i][1];        }        double real = 0, imag = 0;        for (int i = 0; i 

上一篇:上次登录的服务器怎么删?

下一篇:解决卡盟SUP不足,实用方法与策略分享!