816. 模糊坐标

我们有一些二维坐标,如 “(1, 3)” 或 “(2, 0.5)”,然后我们移除所有逗号,小数点和空格,得到一个字符串S。返回所有可能的原始字符串到一个列表中。

原始的坐标表示法不会存在多余的零,所以不会出现类似于"00", “0.0”, “0.00”, “1.0”, “001”, "00.01"或一些其他更小的数来表示坐标。此外,一个小数点前至少存在一个数,所以也不会出现“.1”形式的数字。

最后返回的列表可以是任意顺序的。而且注意返回的两个数字中间(逗号之后)都有一个空格。

示例 1:

输入: “(123)”

输出: ["(1, 23)", “(12, 3)”, “(1.2, 3)”, “(1, 2.3)”]

示例 2:

输入: “(00011)”

输出: ["(0.001, 1)", “(0, 0.011)”]

解释:

0.0, 00, 0001 或 00.01 是不被允许的。

示例 3:

输入: “(0123)”

输出: ["(0, 123)", “(0, 12.3)”, “(0, 1.23)”, “(0.1, 23)”, “(0.1, 2.3)”, “(0.12, 3)”]

示例 4:

输入: “(100)”

输出: [(10, 0)]

解释:

1.0 是不被允许的。

提示:

4 <= S.length <= 12.

S[0] = “(”, S[S.length - 1] = “)”, 且字符串 S 中的其他元素都是数字。

PS:

左右分开的暴力解法

class Solution {
public List<String> ambiguousCoordinates(String S) {
int len = S.length();
S = S.substring(1, len - 1);
len -= 2;
List<String> res = new ArrayList<>();
for(int i = 0; i < len - 1; i++){
List<String> left = helper(S.substring(0, i + 1));
List<String> right = helper(S.substring(i + 1));
if(left.size() == 0 || right.size() == 0){
continue;
}
for(String l : left){
for(String r : right){
StringBuilder sb = new StringBuilder();
sb.append("(").append(l).append(", ").append(r).append(")");
res.add(sb.toString());
}
}
}
return res;
} private List<String> helper(String str){
List<String> list = new ArrayList<>();
int len = str.length();
if(str.charAt(len - 1) == '0'){
if(len == 1){
list.add("0");
}
else if(str.charAt(0) != '0'){
list.add(str);
}
return list;
}
if(str.charAt(0) == '0'){
list.add("0." + str.substring(1));
return list;
}
list.add(str);
for(int i = 0; i < len - 1; i++){
StringBuilder sb = new StringBuilder();
sb.append(str.substring(0, i + 1)).append('.').append(str.substring(i + 1));
list.add(sb.toString());
}
return list;
}
}

Java实现 LeetCode 816 模糊坐标(暴力)的更多相关文章

  1. Java for LeetCode 060 Permutation Sequence

    The set [1,2,3,…,n] contains a total of n! unique permutations. By listing and labeling all of the p ...

  2. Java for LeetCode 044 Wildcard Matching

    Implement wildcard pattern matching with support for '?' and '*'. '?' Matches any single character. ...

  3. java使用elasticsearch进行模糊查询-已在项目中实际应用

    java使用elasticsearch进行模糊查询 使用环境上篇文章本人已书写过,需要maven坐标,ES连接工具类的请看上一篇文章,以下是内容是笔者在真实项目中运用总结而产生,并写的是主要方法和思路 ...

  4. Java for LeetCode 216 Combination Sum III

    Find all possible combinations of k numbers that add up to a number n, given that only numbers from ...

  5. Java for LeetCode 214 Shortest Palindrome

    Given a string S, you are allowed to convert it to a palindrome by adding characters in front of it. ...

  6. Java for LeetCode 212 Word Search II

    Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...

  7. Java for LeetCode 211 Add and Search Word - Data structure design

    Design a data structure that supports the following two operations: void addWord(word)bool search(wo ...

  8. Java for LeetCode 210 Course Schedule II

    There are a total of n courses you have to take, labeled from 0 to n - 1. Some courses may have prer ...

  9. Java for LeetCode 200 Number of Islands

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...

随机推荐

  1. java接口自动化(五) - 企业级代码管理工具Git的配置

    1.简介 上一篇讲解完如何安装Git后,今天宏哥趁热打铁讲解一下Git的使用,要想使用Git,我们还需要做一些准备工作,首先你的拥有一个Git账号,所以如果你没有的话,就快速注册一个吧. 2.Git注 ...

  2. CF-612D The Union of k-Segments 差分

    D. The Union of k-Segments 题意 给出n个线段,以及一个数字k,让求出有哪些线段:线段上所有的点至少被覆盖了k次. 思路 假如忽略掉线段的左右端点范围,肯定是使用差分来维护每 ...

  3. [hdu5396 Expression]区间DP

    题意:给一个表达式,求所有的计算顺序产生的结果总和 思路:比较明显的区间dp,令dp[l][r]为闭区间[l,r]的所有可能的结果和,考虑最后一个符号的位置k,k必须在l,r之间,则l≤k<r, ...

  4. 错误提示 Table '.***_ecms_news_data_' doesn't exist select keyid,dokey,newstempid,closepl,info

    错误提示:Table '**.***_ecms_news_data_' doesn't exist select keyid,dokey,newstempid,closepl,infotags,wri ...

  5. 10JAVA基础-常用类02

    Arrays 工具类,构造方法私有 //将数组转变为字符串 String str = Arrays.toString(int[] value); //对于原数组进行排序,升序 Arrays.sort( ...

  6. java调用oracle存储过程返回多条结果集

    oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT, ...

  7. PAT 1028 List Sorting (25分) 用char[],不要用string

    题目 Excel can sort records according to any column. Now you are supposed to imitate this function. In ...

  8. 设计模式系列之单例模式(Singleton Pattern)——确保对象的唯一性

    模式概述 模式定义 模式结构图 饿汉式单例与懒汉式单例 饿汉式单例 懒汉式单例 模式应用 模式在JDK中的应用 模式在开源项目中的应用 模式总结 主要优点 适用场景 说明:设计模式系列文章是读刘伟所著 ...

  9. 19-6 通过t-sql实现约束

    ------------------------------------------------------------------------ --通过t-sql语句来创建约束 ---------- ...

  10. Java-main方法中调用非static方法

    java的calss中,在public static void main(String[] args) { }方法中调用非static的方法:在main方法中创建该calss的对象,用对象调用非sta ...