【笔试】美团2020暑期实习生编程题

幸运星

观星的时候,一种常用的方式是画出类似于正方形的区域内,确定其中所有星星的坐标。现在我们在星空(一个无限大的二维平面)上建立坐标系,由于星星很小,我们忽略它的面积,认为每个星星是一个点。且所有星星的坐标都是整数。

幸运星的定义是这一颗星星在这个平面内,正上,正下,正左,正右都有其他的星星(不一定相邻)
现在,我们已经将这个正方形的区域取出,并且将他们所在的坐标给你,现在希望你能计算,这个平面内有多少幸运星

代码基于Python2

#! -*- coding:utf-8 -*-
import sys
n = int(sys.stdin.readline().strip())
zuobiao=[]
for i in range(n):
    line =sys.stdin.readline().strip()
    values=list(map(int,line.split()))
    zuobiao.append({values[0]:values[1]})
max=len(zuobiao)

xingyun=0   #幸运星数量
for i in zuobiao:
    flag = []
    for x in zuobiao:
        if (i.keys()[0]==x.keys()[0] and i[i.keys()[0]] > x[x.keys()[0]]):
             if 1 not in flag:
                  flag.append(1)
        if (i.keys()[0] == x.keys()[0] and i[i.keys()[0]] < x[x.keys()[0]]):
            if 2 not in flag:
                flag.append(2)
        if (i.keys()[0] < x.keys()[0] and i[i.keys()[0]] == x[x.keys()[0]]):
            if 3 not in flag:
                flag.append(3)
        if (i.keys()[0] > x.keys()[0] and i[i.keys()[0]] == x[x.keys()[0]]):
            if 4 not in flag:
                flag.append(4)
        if len(flag)==4:
            xingyun+=1
            break

print(xingyun)

你可能感兴趣的:(笔试题目)