题目

https://leetcode.com/problems/ambiguous-coordinates/

题解

related topics 说是回溯,我偷了个懒,每次都 new 一个新的 String,就不用回溯了。

思路是:把字符串分割成左右两边,分别生成左 list 和右 list,然后左右 list 两两组合。

class Solution {public List<String> ambiguousCoordinates(String s) {StringBuilder num = new StringBuilder(s.substring(1, s.length() - 1));List<String> result = new ArrayList<>();// 把num分成左右两半,分别拿到所有可能的数字,然后两两组合for (int i = 1; i < num.length(); i++) {List<String> left = getList(new StringBuilder(num.substring(0, i)));List<String> right = getList(new StringBuilder(num.substring(i, num.length())));for (String l : left) {for (String r : right) {result.add("(" + l + ", " + r + ")");}}}return result;}// 给字符串s加小数点,返回所有可能的结果public List<String> getList(StringBuilder s) {List<String> result = new ArrayList<>();for (int i = 1; i < s.length(); i++) {String cur = new StringBuilder(s).insert(i, ".").toString();if (isValid(cur)) result.add(cur);}if (isValid(s.toString())) result.add(s.toString());return result;}public boolean isValid(String s) {if (s.startsWith("00") || s.startsWith(".")) return false;if (s.contains(".") && s.endsWith("0")) return false;// 只要以0开头,所有后面不是小数点的字符串,都是耍流氓if (s.length() > 1 && s.startsWith("0") && s.charAt(1) != '.') return false;return true;}
}

leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java)相关推荐

  1. LeetCode (12.整数转罗马数字)JAVA StringBuffer

    LeetCode (12.整数转罗马数字)JAVA StringBuffer 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 1 ...

  2. LeetCode(13.罗马数字转整数) JAVA Hashmap

    LeetCode(13.罗马数字转整数) JAVA Hashmap 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D ...

  3. 实现图片中文的识别和获取图片上文字的坐标(java实现)

    实现图片中文的识别和获取图片上文字的坐标(java实现)            现在利用python来进行图片的文字识别较为普遍,但是如果我们利用常用的家庭电脑来识别,需要的时间比较长,达到20~30 ...

  4. LeetCode 09:回文数(Java实现)

    LeetCode 09:回文数(Java实现) 题目 判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121 输出: true 示例 2:输 ...

  5. 关于GPS坐标转百度坐标与goolg坐标转百度坐标java代码实现方法

    关于GPS坐标转百度坐标与goolg坐标转百度坐标java代码实现方法 百度显示坐标经过了两次加密所以需要转换. <pre name="code" class="j ...

  6. [LeetCode]187. 重复的DNA序列(java实现)暴力 + 哈希

    [LeetCode]187. 重复的DNA序列(java实现) 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 1. ...

  7. LeetCode 816. 模糊坐标

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

  8. LeetCode 674. Longest Continuous Increasing Subsequence--python,Java,C++解法

    此题链接:Longest Continuous Increasing Subsequence - LeetCode Given an unsorted array of integers, find ...

  9. LeetCode hard 84. Largest Rectangle in Histogram--python,java 15行,c++ 15行 解法

    题目地址: Given n non-negative integers representing the histogram's bar height where the width of each ...

最新文章

  1. cocos2d-x JS 获取当前系统时间(解决屏幕双击点击事件)
  2. python和前端之HTML的激情
  3. ionic3学习之Android平台打包方式
  4. FreeBSD学习笔记25-安装DHCP服务
  5. 物联网将推动半导体产业继续增长
  6. UIBarButtonSystemItem 各种款式
  7. factorybean 代理类不能按照类型注入_Spring注解驱动开发之四——@Import快速导入组件、FactoryBean 定义工厂注册组件...
  8. 【洛谷3377】 左偏树(可并堆)
  9. 查询手机号段对应地区编码_2020陕西专升本考试今日起查询成绩啦
  10. python excel 数据匹配实现vlookup功能_如何用python实现excel中的vlookup功能?
  11. java 线程一起画图_java 多线程画图 不显示过程
  12. AngularJS-compareDirective.js 验证指令
  13. PyTorch系列入门到精通——生成对抗网络一瞥
  14. 机器学习、深度学习需要哪些数学知识?✅
  15. win10设置任务栏全透明、免安装第三方软件
  16. 改进的cholesky matlab,矩阵的Cholesky分解的Matlab实现
  17. wamp5数据库密码修改
  18. Latex带序号的项目符号列表
  19. java横向导出excel_JavaWeb POI 导出Excel
  20. 计算机网络协会宣传文案,心理协会 | 一千句招新文案,不及你出现的一刻

热门文章

  1. 牛客多校7 - A National Pandemic(树链剖分+线段树)
  2. CodeForces - 1325D Ehab the Xorcist(构造+异或)
  3. HDU - 5157 Harry and magic string(回文自动机)
  4. 计算机硬盘满了怎么解决,使用SSD硬盘空间清理 C盘爆满怎么办
  5. linux排序语言,Go语言排序sort的使用
  6. 如何打造不怕被嗅探的3389登陆
  7. API---有意思的API
  8. 自媒体时代的贤内助——AI 视频云
  9. Socket之UDP服务器【Python】
  10. 解决Git中的fatal: refusing to merge unrelated histories