首页 > 编程语言 > 详细

python计算登山队最远坐标

时间:2020-11-30 19:14:57      阅读:43      评论:0      收藏:0      [点我收藏+]

总部为(0,0),输入字符以及坐标,求出最远坐标且最先到达的坐标

import re,math
s = "abcccc(3,10)c5,13d(1$f(6,11)sdf(510,200)adas2d()(011,6)" #原始字符串
#print(re.findall(r‘[^()a-z]+‘, s))
pattern = re.compile(r\(([0-9]{1,3},[0-9]{1,3})\)) #提取坐标正则表达式对象
result = re.findall(pattern,s) #查询整个字符串,得出坐标列表
f_result={}
#判断是否为合格的十进制整数,且大于0小于500
def isDigit(str1):
    if len(str1)==3:
        if str1[0]==0:
            return False
        elif int(str1[0])>=5:
            return False
        else:
            return True
    if len(str1)==2:
        if str1[0]==0:
            return False
        else:
            return True
    if len(str1)==1:
        if str1==0:
            return False
        else:
            return True
#遍历得出的坐标列表,求得他距离总部(0,0)的距离,距离为x^2+y^2,并保存到字典f_result
for i in result:
    i=i.split(,)
    if isDigit(i[0]) and isDigit(i[1]):
        f_result[,.join(i)]=math.pow(int(i[0]),2)+math.pow(int(i[1]),2)
#求得最远距离
a=max(f_result.values())
#最远距离的距离和坐标字典
z_result=[]
for i in f_result:
    if f_result[i]==a:
        z_result.append(i)
#最远距离下,x+y和与坐标
he_result={}
#如果最远距离相等,判断谁先到达,规则x+y
for i in z_result:
    i=i.split(,)
    he_result[,.join(i)]=int(i[0])+int(i[1])
#求得和的最小值
b=min(he_result.values())
#遍历,打印出最小和的坐标
for i in he_result:
    if he_result[i]==b:
        print((+i+))
#print(i,i[0],i[1],isDigit(i[0]),isDigit(i[1]),f_result,a,z_result,z_result[0],he_result)

 

python计算登山队最远坐标

原文:https://www.cnblogs.com/lag1/p/14062850.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!