zoukankan      html  css  js  c++  java
  • 【字节跳动面试题】 撸它

    牛客刷题偶遇 字节后端笔试0715 撸它

    一共两道编程题。

    1、 给定一个合法的计算表达式,该表达式只包括

    0 1 2…9 + - ( )

    这些字符,求判断内部不包含减号的括号对数;

    例子如下:

    (1+(2+1)+(3+4)-5)

    该计算表达式不包含减号的括号对数为2对;

    思路:
    利用栈先进后出的特点,除了有括号全部进栈,与右括号开始出栈,遇到减号当前一组括号不计数,但是为了后面计算方便,需要中间的字符都出栈直至遇到左括号。

    执行顺序:

    (1+(2+1)+(3+4)-5)
    (1++(3+4)-5)
    (1++-5)
    

    代码如下:

    data = input()
    # 定义 左侧为栈底  右侧为栈顶
    stack = []
    count = 0
    for cad in data:
        if cad == ")":
            flag = True
            while 1:
            	try:
                	temp = stack.pop()
                except:
                    break
                if temp == "(":
                    if flag:
                        count += 1
                    break
                elif "0" <= temp <= "9" or temp == "+":
                    pass
                else:
                    flag = False
        else:
            stack.append(cad)
    
    print(count)
    

    2、 给定若干行字符串,每一行代表一个访问记录,每个记录包含三个字段:用户id, 网址,访问时长;

    保证每个用户对于某个网站的访问记录只有一条,求被访问总时长大于180分钟且访问人数最多的网站;

    输入举例

      12345 www.a.com 150
           12346 www.a.com 150
           12345 www.b.com 150

    该输入的输出为: 

    www.a.com 

    思路:

    这题更简单一点,分割字符串然后利用字典计数

    代码如下:

    url_dic = {}
    while 1:
        try:
            data = input()
            user_id, url, count = data.split()
            url_dic[url] = url_dic.get(url, 0) + int(count)
        except:
            break
    
    for url, count in url_dic.items():
        if count > 180:
            print(url)
    

    若是对你有帮助,点个赞呗!!

    加入我们,,软件测试交流,,。群。。642830685,领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!一起交流学习进步  

  • 相关阅读:
    winform导入导出excel,后台动态添加控件
    asp.net 导入excel文件
    asp.net gridview动态添加列,并获取其数据;
    中转Http请求
    窗体托盘后台运行
    后台程序完成指定任务
    死锁查看
    异步等待(ManualResetEvent
    C#后台程序重启IIS,发邮件通知
    mybatis入门视频总结
  • 原文地址:https://www.cnblogs.com/www642830685/p/13336165.html
Copyright © 2011-2022 走看看