您的位置:首页 > 编程语言

今日头条2017年秋招编程题“最大”点集

2017-08-29 17:49 232 查看


#coding = utf-8
#输入n的坐标点,找不出比它同时X和Y轴都大的点,即输出
#例子:输入n为5
#然后每行入一个点的坐标:2 4                              下一行输入 4 5                          依次内推 6 3                  1 8                                2 0
#输出满足条件的坐标  按横坐标排序由小到大输出坐标点
import sys
if __name__ == "__main__":
n=int(sys.stdin.readline().strip())
pointX=[]
pointY=[]
resList=[]
for k in range(n):
line = sys.stdin.readline().strip()
pointX.append(line.split()[0])
pointY.append(line.split()[1])
print "输出结果按X排序,如上则输出为:"
#从第一个值开始,与它后面的值比较,有比它X和Y同时大的,则退出,接着从第二值开始,与它后面的值比较,如果没有比它同时XY都大的,则满足条件
for i in range(n):
for j in range(i+1,n):
if(pointX[i]<pointX[j]) and (pointY[i]<pointY[j]):
break
else:
if(j==(n-1)):
resList.append(list(str(pointX[i])+str(pointY[i])))
else:
continue
#最后一值比较与它前面的值进行比较
for k in range(n-1):
if(pointX[n-1]<pointX[k]) and (pointY[n-1]<pointY[k]):
break
else:
if(k==(n-2)):
resList.append(list(str(pointX[n-1])+str(pointY[n-1])))
else:
continue
resList.sort(key=lambda x:x[0]) #按key排序,value对应变化
for m in range(len(resList)):
print  ("%s %s" %(resList[m][0],resList[m][1]))


结果如下截图:



python新手,代码没有做优化,目前先实现功能,如果有问题或错误之处,请留言指正,谢谢~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息