网易 算法岗笔试题 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: #网易##笔试题目#
#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)