题目描述: ''' 我们有一些二维坐标,如 "(1, 3)" 或 "(2, 0.5)",然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。 原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", "0.0", "0.00", "1.0", "001", "00.01"或一些其他更小的数来表示坐标。 此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。 最后返回的列表可以是任意顺序的。而且注意返回的两个数字中间(逗号之后)都有一个空格。 ''' 代码实现: class Solution: # "123" => ["1.23", "12.3", "123"] def subset(self, s: str): ans = [] # 带小数点的 for i in range(1, len(s)): # 不允许 00.111, 0.0,01.1,1.0 if s[0] == '0' and i > 1: continue if s[-1] == '0': continue ans.append(s[:i] + "." + s[i:]) # 不带小数点的(不允许 001) if s == '0' or not s.startswith('0'): ans.append(s) return ans def ambiguousCoordinates(self, s: str) -> list[str]: ans = [] s = s[1:-1] for i in range(1, len(s)): x = self.subset(s[:i]) y = self.subset(s[i:]) for i in x: for j in y: ans.append('(' + i + ', ' + j + ')') return ans if __name__ == '__main__': results = Solution().ambiguousCoordinates(s="(123)") print(results)
05-09
9543
05-20
228
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交