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多种语言分析,解答。
