腾讯测开一面面经(8.17)
1. 自我介绍
2. 问项目,项目细节,项目中最能体现你能力的地方。
3. 为什么要报测开?了解测开吗?
4. 手撕代码 解压字符串。 (时间比较紧, 总共15min,没写出来,说了一下思路,也说得不好)
完事后计时做了下,写完需要30分钟,太慢了。
之后做题时候解题思路要能清晰表述,要加强做题速度。与君共勉~。
- 输入 HG[3|B[2|CA]]F
- 输出 HGBCACABCACABCACAF
#include<bits/stdc++.h> using namespace std; string multiStr(string& pre, int n) { string ans = ""; while(n--) { ans += pre; } return ans; } int main() { string s; cin>>s; stack<pair<int, string>> buffer; int n = s.size(); string ans = "", next = ""; for (int i = 0; i < n;) { if(s[i] == '[') { i++; next = ""; string now = ""; int num = 0; while(isdigit(s[i])) num = num*10 + s[i++]-'0'; ++i; //跳过 | while(s[i] != ']' && s[i] != '[') { now += s[i]; ++i; } buffer.push(make_pair(num, now)); } else if(s[i] == ']') { i++; int cnt = buffer.top().first; string pre = buffer.top().second + next; buffer.pop(); next = multiStr(pre, cnt); if (buffer.empty()) ans += next; } else { ans += s[i++]; } } cout<<ans; return 0; }