2023 百度笔试题 0328
笔试时间:2023年3月28日 春招实习
第一题
题目:百度字符串
小红拿到了一个字符串,她想知道这个字符串能否通过重新排列组成"Baidu"字符串?
注:必须大小写完全相同。共有t组询问。
输入描述
第一行输入一个正整数t,代表询问次数。
接下来的t行,每一行输入一个仅包含英文字母的字符串。
所有字符串的长度之和保证不超过200000。
输出描述
成功则输出YES,否则输出NO。
样例输入
4
Baidu
baidu
Baidu
bbdu
样例输出
YES
NO
YES
NO
参考题解
哈希表模拟即可。
C++:[此代码未进行大量数据的测试,仅供参考]
#include <iostream> #include <set> using namespace std; bool solv() { set<char> s; string input; cin >> input; if (input.size() == 5) { for (char c : input) { s.insert(c); } set<char> baidu = {'B', 'a', 'i', 'd', 'u'}; for (char c : baidu) { if (s.find(c) == s.end()) { return false; } } return true; } return false; } int main() { int t; cin >> t; for (int i = 0; i < t; i++) { if (solv()) { cout << "YES" << endl; } else { cout << "NO" << endl; } } return 0; }
Java:[此代码未进行大量数据的测试,仅供参考]
import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static boolean solv() { Set<Character> s = new HashSet<>(); Scanner scanner = new Scanner(System.in); String input = scanner.next(); if (input.length() == 5) { for (char c : input.toCharArray()) { s.add(c); } Set<Character> baidu = new HashSet<>(); baidu.add('B'); baidu.add('a'); baidu.add('i'); baidu.add('d'); baidu.add('u'); for (char c : baidu) { if (!s.contains(c)) { return false; } } return true; } return false; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int t = scanner.nextInt(); for (int i = 0; i < t; i++) { if (solv()) { System.out.println("YES"); } else { System.out.println("NO"); } } } }
Python:[此代码未进行大量数据的测试,仅供参考]
t = int(input()) baidu = set(['B','a','i','d','u']) def solv(): s = set([c for c in input()]) if len(s) == 5: for c in baidu: if c not in s: return False return True return False for _ in range(t): if solv(): print('YES') else:print('NO')
第二题
题目:RED字符串
给定一个整数x,请你构造一个仅由'r'、'e'
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。