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