今天是一道中等题

有点暴力啊,思想!
---第一层循环,找出逗号可以放的地方
---在逗号左右再找出可以放小数点的地方,
---最后把左右拼凑到一起
- class Solution:
- def ambiguousCoordinates(self, s: str) -> List[str]:
- def find_point(ss):
- ll=len(ss)
- # 这里排除法一定注意:要把返回空的”“的条件放前面!!!不然可能导致该返回空的没有返回空!!!
- if ll!=1 and ss=="0"*len(ss):
- return ""
- elif ll>=2 and ss[0] == '0' and ss[-1] == '0':
- return ""
- elif ll == 1 or ss[-1] == '0':
- return [ss]
- elif ss[0] == "0":
- return ['0.' + ss[1:]]
- result = [ss]
- for i in range(len(ss) - 1): # 寻找小数点放那个元素后面(不用放最后元素的后面,那样就是整数了,初始化已经考虑了)
- result.append(ss[:i + 1] + "." + ss[i + 1:])
- return result
-
- s = s[1:-1]
- l, res = len(s), []
- for i in range(l - 1): # 寻找逗号放到哪个元素后面(不不能放到下标为n-1的后面,因为那样就后面没有元素了)
- left = find_point(s[:i + 1])
- if left == "":
- continue
- right = find_point(s[i + 1:])
- if right == "":
- continue
- for i, j in product(left, right):
- res.append('(' + i + ', ' + j + ')')
-
- return res

今天的打卡完成啦!