文章目录
- 1. 题目
- 2. 解题
1. 题目
描述
现在给你两个字符串区间(按字典顺序), 请你判断两个区间是否可以合并。
字符串区间[a, b)
,包括所有以a开头的字符串。
例如,区间[a, b)
和区间[ab,c)
是可以合并的,
区间[a,b)
和区间[b, c]
也是可以合并的。
若是可以合并请返回 true, 不可以请返回 false。
说明
若两个区间A和B,满足A U B
是一个连续区间,则A和B可合并。
示例
样例1
输入:
"[a,b]" "[b,c]"
输出:
true样例2
输入:
"[a,b]" "(b,c]"
输出:
true样例3
输入:
"[a,b)" "(b,c]"
输出:
false样例4
输入:
"(b,c)" "[a,b]"
输出:
true
https://tianchi.aliyun.com/oj/376506598349105305/389682099790222005
2. 解题
注意:
"(a,ab]"
"[aba,c]"
返回 True
class Solution:"""@param interval_A: a string represent a interval.@param interval_B: a string represent a interval.@return: if two intervals can merge return true, otherwise false."""def MergeJudge(self, interval_A, interval_B):# write your code herea1, a2 = interval_A[1:-1].split(',') # 去除区间符号b1, b2 = interval_B[1:-1].split(',')if a1 > b1: # 交换,小的区间在前interval_A, interval_B = interval_B, interval_Aa1, b1 = b1, a1a2, b2 = b2, a2if a2 > b1: # 有交集return Trueelif b1.split(a2)==["","a"] and interval_A[-1]=="]" and interval_B[0]=='[':return True # 如上例子的情况 "(a,ab]" "[aba,c]"return a2==b1 and not (interval_A[-1]==")" and interval_B[0]=='(')
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!