网易 算法岗笔试题 python解决

第一题:
#coding=utf-8
import sys
if __name__ == "__main__":
    # 读取第一行的n
    t = int(sys.stdin.readline().strip())
    ans = 0
    result = []
    for i in range(t):
        # 读取每一行
        n = int(sys.stdin.readline().strip())
        d = {}
        line = sys.stdin.readline().strip()
        values = map(int, line.split())
        for v in values:
            count = 0
            while v:
                c = v % 2
                count = c&1
                v = v >> 1
            if count in d:
                continue
            else:
               d[count] = 1
        result.append(len(d.keys()))
    print (result)
第二题:
# coding=utf-8
# 本题为考试多行输入输出规范示例,无需提交,不计分。
import sys
if __name__ == "__main__":
    # 读取第一行的n
    t = int(sys.stdin.readline().strip())
    for _ in range(t):
        line = sys.stdin.readline().strip()
        values = list(map(int, line.split()))
        m, t, m1, t1, m2, t2 = values[0], values[1], values[2], values[3], values[4], values[5]
        tab1, tab2 = 1, 1
        result = 0
        for i in range(1, t 1):
            if tab1 and not tab2:
                if result m1 < m:
                    result = m1
                else:
                    result = m
            elif tab2 and not tab1:
                if result - m2 >= 0:
                    result -= m2
                else:
                    result = 0
            elif tab2 and tab1:
                result = (m1 - m2)
                if result > m:
                    result = m
                if result < 0:
                    result = 0
            if (i // t1) % 2:
                tab1 = 0
            else:
                tab1 = 1
            if (i // t2) % 2:
                tab2 = 0
            else:
                tab2 = 1
        print(result)
第三题:
# coding=utf-8
import sys
if __name__ == "__main__":
    # 读取第一行的n
    t = int(sys.stdin.readline().strip())
    ans = 0
    result = []
    interval = []
    for _ in range(t):
        # 读取每一行
        s = sys.stdin.readline().strip()
        lens = len(s)
        if s[-1] == "N":
            s = s "G"
        l = []
        ls = len(s)
        k = 0
        for i in range(ls):
            if s[i] != "N":
                if not l:
                    l.append(i)
                    k = i
                else:
                    l.append(i - k - 1)
                    k = i
        if len(l) <= 3:
            re = lens
        else:
            interval = [l[i] l[i - 1] l[i - 2] 2 for i in range(2, len(l))]
            re = max(interval)
        print(re)
 
#网易##笔试题目#
全部评论

相关推荐

榕城小榕树:1200单休,我去干点啥别的不好
点赞 评论 收藏
分享
评论
点赞
10
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务