leetcode 816 模糊座標

2021-09-28 16:46:44 字數 2155 閱讀 7110

題目描述:

我們有一些二維座標,如 「(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 是不被允許的。

分析

將字串s進行分割成左右兩部分子字串,對子字串新增小數點,有如下情況:

if s == "": return

if s == "0": return [s]

if s == "0***0": return

if s == "0***": return ["0.***"]

if s == "***0": return [s]

return [s, "x.***", "xx.xx", "***.x"...]

將對子字串新增小數點當作單獨乙個函式:

vector

f(string str);if

(n>

1&& str[0]

=='0'

)return;if

(n==

1|| str[n-1]

=='0'

)return

; vector temp =

;//初始化陣列

for(

int i=

1; i++i)

temp.

push_back

(str.

substr(0

,i)+

'.'+str.

substr

(i))

;return temp;

}

返回乙個string,包含s中從pos開始的n個字元的拷貝(pos的預設值是0,n的預設值是s.size() - pos,即不加引數會預設拷貝整個s)。

若pos的值超過了string的大小,則substr函式會丟擲乙個out_of_range異常;若pos+n的值超過了string的大小,則substr會調整n的值,只拷貝到string的末尾。

整個**

class

solution}}

return res;

}

vector

f(string str);if

(n>

1&& str[0]

=='0'

)return;if

(n==

1|| str[n-1]

=='0'

)return

; vector temp =

;//初始化陣列

for(

int i=

1; i++i)

temp.

push_back

(str.

substr(0

,i)+

'.'+str.

substr

(i))

;return temp;}}

;

參考:

LeetCode81 搜尋旋轉排序陣列 II

二分查詢,但是下面的 在測試用例 3,1 1中出錯。package 牛客刷題.leetcode.查詢.search in rotated sorted array ii created by administrator on 2018 6 28 0028.public class solution ...

LeetCode 81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回true,否則返回false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0輸出 t...

leetcode81 搜尋旋轉排序陣列 II

假設按照公升序排序的陣列在預先未知的某個點上進行了旋轉。例如,陣列 0,0,1,2,2,5,6 可能變為 2,5,6,0,0,1,2 編寫乙個函式來判斷給定的目標值是否存在於陣列中。若存在返回 true,否則返回 false。示例 1 輸入 nums 2,5,6,0,0,1,2 target 0 輸...