8.23爱奇艺笔试

第一题,求n!中0的个数。
import sys
n = int(sys.stdin.readline().strip())
def func(n):
    count = 0
    while n>=5:
        count += n//5
        n //= 5
    return count
print(func(n))
第二题,判断路径是否相交。
给你一个字符串 path,其中 path[i] 的值可以是 'N'、'S'、'E' 或者 'W',分别表示向北、向南、向东、向西移动一个单位。

机器人从二维平面上的原点 (0, 0) 处开始出发,按 path 所指示的路径行走。

如果路径在任何位置上出现相交的情况,也就是走到之前已经走过的位置,请返回 True ;否则,返回 False 。
import sys
path = sys.stdin.readline().strip()
directions = {'N': (0, 1), 'S': (0, -1), 'E': (1, 0), 'W': (-1, 0)}
def func(path):
    temp = set()
    point = (0, 0)
    temp.add(point)
    for p in path:
        x, y = directions[p]
        point = (point[0] + x, point[1] + y)
        if point in temp:
            return True
        temp.add(point)
    return False
print(func(path))
第三题:判断一个输入的括号是否是有效括号
import sys
s = sys.stdin.readline().strip()
def func(s):
    dic=  {'}':'{', ']':'[', ')':'('}
    stack = []
    for c in s:
        if c not in dic:
            stack.append(c)
        else:
            if stack  and  stack.pop() != dic[c]:
                return False
    return not stack
print(func(s))



#笔试题目#
全部评论
楼主第三题 没有考虑出栈入栈后 栈空的情形
1 回复 分享
发布于 2020-08-23 17:14
😂第三题ac33.3%不知道为啥
点赞 回复 分享
发布于 2020-08-23 17:12

相关推荐

11-07 13:31
怀化学院 Java
勇敢牛牛不怕难:又疯一个
点赞 评论 收藏
分享
点赞 评论 收藏
分享
3 2 评论
分享
牛客网
牛客企业服务