练习62:在坐标中给定3个矩形,求三个矩形相交的面积,如果没有返回-1。
矩形左上角坐标的x和y,宽和高,用数字列表表示,例如[x,y,kuan,gao]。
例如:三个矩形左上角坐标及宽和高分别为:[1,6,4,4] [3,5,3,4],[0,3,7,3]计算结果为2
"""
import re
jue1 = [1,6,4,4]
jue2 = [3,5,3,4]
jue3 = [0,3,7,3]
jue1_shang = list(range(jue1[0],jue1[0]+jue1[2]+1))
print(jue1_shang)
jue1_zuo = list(range(jue1[1]-jue1[3],jue1[1]+1))
print(jue1_zuo)
jue2_shang = list(range(jue2[0],jue2[0]+jue2[2]+1))
print(jue2_shang)
jue2_zuo = list(range(jue2[1]-jue2[3],jue2[1]+1))
print(jue2_zuo)
jue3_shang = list(range(jue3[0],jue3[0]+jue3[2]+1))
print(jue3_shang)
jue3_zuo = list(range(jue3[1]-jue3[3],jue3[1]+1))
print(jue3_zuo)
shang_jiao_set = set(jue1_shang)&set(jue2_shang)&set(jue3_shang)
print(shang_jiao_set)
zuo_jiao_set = set(jue1_zuo)&set(jue2_zuo)&set(jue3_zuo)
print(zuo_jiao_set)
if len(shang_jiao_set)>1 and len(zuo_jiao_set)>1:
mianji = (len(shang_jiao_set)-1)*(len(zuo_jiao_set)-1)
print(mianji)
else:
print(0)
"""
练习63:定义一个函数,找出字符串列表中,所有字符串的公共前缀。
如果不存在返回空字符串。
例如['flower','flit','floer'] 返回 'fl' ['dog','cat','flow'] 返回空字符串。
"""
str_li = ['floter','flit','floter']
str_li.sort(key=len)
print(str_li)
zuiduan_str = str_li[0]
str1 = ""
biaozhi = 0
for i in range(len(zuiduan_str)):
for j in range(1,len(str_li)):
if zuiduan_str[i] != str_li[j][i]:
biaozhi = 1
break
else:
str1+=zuiduan_str[i]
if biaozhi == 1:
break
print(str1)