2023 oppo笔试题 0411
笔试时间:2023年4月11日 春招实习
备注:第二题暂未有题解
第一题
题目:最短的括号字符串
小欧拿到了一个只包含'('和')'的字符串,她有以下两种操作:
1、用"("代替对括号:"()”
2、用")"代替对括号:"()"。
请注意,只有相邻的括号字符才可以操作。小欧想知道,若干次操作以后,该字符串的最短长度是多少?
输入描述
一个只包含’('和')'两种字符的字符串。长度不超过200000。
输出描述
一个整数,代表若干次操作后,字符串的最短长度。
样例输入
示例1:()
示例2: )(
样例输出
示例1:1
示例2:2
参考题解
利用栈的特性解决。
C++:[此代码未进行大量数据的测试,仅供参考]
#include <iostream>
#include <stack>
using namespace std;
int main() {
string s;
cin >> s;
stack<char> st;
for (char c : s) {
bool flag = false;
while (!st.empty() && c == ')' && st.top() == '(') {
st.pop();
flag = true;
}
if (flag) {
st.push('(');
} else {
st.push(c);
}
}
cout << st.size() << endl;
return 0;
}
Java:[此代码未进行大量数据的测试,仅供参考]
import j
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
2023 秋招笔试题汇总解析 文章被收录于专栏
2023秋招各大笔试题汇总,c++,java,python多种语言分析,解答。
查看12道真题和解析