行业知识
【荣耀笔试题汇总】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
- Cpp
- Java
- Python
上一篇:上次登录的服务器怎么删?