日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java)

發布時間:2024/2/28 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 leetcode 816. Ambiguous Coordinates | 816. 模糊坐标(Java) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目

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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。