- func ambiguousCoordinates(s string) []string {
- // 预处理:去掉左右两边的括号
- s = s[1:len(s)-1]
-
- res := make([]string, 0)
- for i:=1;i<len(s);i++{
- x := get(s[:i])
- y := get(s[i:])
-
- for _, u := range x {
- for _, v := range y {
- res = append(res, "(" + u + ", " + v + ")")
- }
- }
- }
- return res
- }
-
-
- func get(s string) []string {
- ret := make([]string,0)
- // 该字符串的首字母不为0 或者 该字符串长度只为1,且值是'0'
- if s[0] != '0' || s == "0" {
- ret = append(ret, s)
- }
-
- // 处理一般情况,从下标1开始处理
- for i:=1;i<len(s);i++{
-
- // 不能是0.xxx,可以是0.x 所以i要大于1
- // 不能是xxxx0,就是结尾不能是0
- if i>1 && s[0] == '0' || s[len(s)-1] == '0' {
- continue
- }
-
- ret = append(ret, s[:i] + "." + s[i:])
- }
- return ret
- /*
- 举个例子1和23分别进来
- 1 进来直接特判然后 ret = ["1"]返回了
- 23 进来,
- 1、特判 ret = ["23"]
- 2、for循环处理1次
- append "2" + "." + "3"
- 3、所以ret = ["23","2.3"] 返回
- */
- }