bilibili 9.13 媒体后端笔试AK(cpp版本)
第一题:把链表折过来再拉长,有点像拉面
#include <bits/stdc++.h>
using namespace std;
int main () {
string input, output, temp;
cin >> input;
vector<int> num, ret;
for (const auto& c : input) {
if (c <= '9' && c >= '0') {
temp += c;
} else {
num.push_back(stoi(temp));
temp.clear();
}
}
if (!temp.empty()) {
num.push_back(stoi(temp));
temp.clear();
}
int l = 0, r = num.size() - 1;
while (l <= r) {
ret.push_back(num[l]);
if (l != r) ret.push_back(num[r]);
l++;
r--;
}
for (const auto& c : ret) {
output += to_string(c) + ',';
}
output.pop_back();
cout << output << endl;
return 0;
} 第二题:公共元素的最小值
#include <bits/stdc++.h>
using namespace std;
int main () {
set<int> pre, cur;
int ret = -1;
string str;
bool startFlag = true;
while (getline(cin, str)) {
if (startFlag) {
startFlag = false;
string curNum;
for (const auto& c : str) {
if (c >= '0' && c <= '9') {
curNum += c;
} else {
cur.insert(stoi(curNum));
curNum.clear();
}
}
if (!curNum.empty()) {
cur.insert(stoi(curNum));
curNum.clear();
}
} else {
pre.clear();
pre = cur;
cur.clear();
string curNum;
for (const auto& c : str) {
if (c >= '0' && c <= '9') {
curNum += c;
} else {
int num = stoi(curNum);
if (pre.find(num) != pre.end()) cur.insert(num);
curNum.clear();
}
}
if (!curNum.empty()) {
int num = stoi(curNum);
if (pre.find(num) != pre.end()) cur.insert(num);
curNum.clear();
}
}
}
if (!cur.empty()) {
for (const auto& item : cur) {
ret = item;
break;
}
}
cout << ret << endl;
return 0;
} 