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

这里写图片描述

#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新手,代码没有做优化,目前先实现功能,如果有问题或错误之处,请留言指正,谢谢~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值