字节后端笔试0715
一共两道编程题。
1.给定一个合法的计算表达式,该表达式只包括
思路:这道题比较简单,用两个map<string,int> 数据结构,一个记录访问总时长,一个记录访问人数,然后在遍历过程中实时更新访问人数最多的网站,最后输出即可;
#字节跳动##笔试题目#
1.给定一个合法的计算表达式,该表达式只包括
0 1 2...9 + - ( )
这些字符,求判断内部不包含减号的括号对数;
例子如下:
(1+(2+1)+(3+4)-5)该计算表达式不包含减号的括号对数为2对;
思路:使用栈,代码如下:
// 1.cpp: 定义控制台应用程序的入口点。 // #include <iostream> #include <stdlib.h> #include <string> #include <stack> using namespace std; int main() { string str; cin >> str; int sz = str.size(); int ans = 0; stack<char> st; for (int i = 0; i < sz; i++) { if (str[i] == '(' ) { st.push(str[i]); } else if (str[i] == ')') { if (!st.empty() && st.top() == '(') { ans++; st.pop(); } } else if (str[i] == '-') { while(!st.empty()) { st.pop(); } } } cout << ans; return 0; }2. 给定若干行字符串,每一行代表一个访问记录,每个记录包含三个字段:用户id, 网址,访问时长;保证每个用户对于某个网站的访问记录只有一条,求被访问总时长大于180分钟且访问人数最多的网站;
输入举例:
12345 www.a.com 150 12346 www.a.com 150 12345 www.b.com 150该输入的输出为:
www.a.com
思路:这道题比较简单,用两个map<string,int> 数据结构,一个记录访问总时长,一个记录访问人数,然后在遍历过程中实时更新访问人数最多的网站,最后输出即可;