[leetcode] 816. Ambiguous Coordinates

网友投稿 330 2022-08-26

[leetcode] 816. Ambiguous Coordinates

Description

We had some 2-dimensional coordinates, like “(1, 3)” or “(2, 0.5)”. Then, we removed all commas, decimal points, and spaces, and ended up with the string S. Return a list of strings representing all possibilities for what our original coordinates could have been.

Our original representation never had extraneous zeroes, so we never started with numbers like “00”, “0.0”, “0.00”, “1.0”, “001”, “00.01”, or any other number that can be represented with less digits. Also, a decimal point within a number never occurs without at least one digit occuring before it, so we never started with numbers like “.1”.

The final answer list can be returned in any order. Also note that all coordinates in the final answer have exactly one space between them (occurring after the comma.)

Example 1:Input: "(123)"Output: ["(1, 23)", "(12, 3)", "(1.2, 3)", "(1, 2.3)"]

Example 2:Input: "(00011)"Output: ["(0.001, 1)", "(0, 0.011)"]Explanation: 0.0, 00, 0001 or 00.01 are not allowed.

Example 3:Input: "(0123)"Output: ["(0, 123)", "(0, 12.3)", "(0, 1.23)", "(0.1, 23)", "(0.1, 2.3)", "(0.12, 3)"]

Example 4:Input: "(100)"Output: [(10, 0)]Explanation: 1.0 is not allowed.

Note:

4 <= S.length <= 12.S[0] = “(”, S[S.length - 1] = “)”, and the other elements in S are digits.

分析

这道题考虑的情况很多,我觉得全部ac比较难,anyway,遇见了就学

In sub functon solve(S) if S == “”: return [] if S == “0”: return [S] if S == “0XXX0”: return [] if S == “0XXX”: return [“​​​0.XXX​​​”] if S == “XXX0”: return [S] return [S, “​​​X.XXX​​”, “XX.XX”, “XXX.X”…]

总体思路是遍历出各种组合,然后判断

代码

class Solution {public: vector ambiguousCoordinates(string S) { vector res; int n=S.size(); for(int i=1;i A=solve(S.substr(1,i)), B=solve(S.substr(i+1,n-1-(i+1))); for(auto a:A){ for(auto b:B){ res.push_back("("+a+", "+b+")"); } } } return res; } vector solve(string s){ int n=s.size(); if(n==0||(n>1&&s[0]=='0'&&s[n-1]=='0')) return {}; if(n>1&&s[0]=='0') return {"0."+s.substr(1)}; if(n==1||s[n-1]=='0') return {s}; vector res={s}; for(int i=1;i

参考文献

​​816. Ambiguous Coordinates​​

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:2022企业营销数字化转型五大趋势!(营销 传统行业的数字化转型什么意思)
下一篇:[leetcode] 309. Best Time to Buy and Sell Stock with Cooldown
相关文章

 发表评论

暂时没有评论,来抢沙发吧~