翻轉字串裡的單詞
給定乙個字串,逐個翻轉字串中的每個單詞。
示例 1:
輸入: 「the sky is blue」
輸出: 「blue is sky the」
示例 2:
輸入: " hello world! "
輸出: 「world! hello」
解釋: 輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
示例 3:
輸入: 「a good example」
輸出: 「example good a」
解釋: 如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
說明:無空格字元構成乙個單詞。
輸入字串可以在前面或者後面包含多餘的空格,但是反轉後的字元不能包括。
如果兩個單詞間有多餘的空格,將反轉後單詞間的空格減少到只含乙個。
解答1:沒用api,手動從後往前判斷單個單詞,新增到結果的sb裡。
//3ms 71%
public string reversewords
(string s)
return sb.
tostring()
.trim()
;}
解答2:
根據空格分成字串陣列,從後往前把不是空的單詞 + 「 」 新增到 sb 裡,把sb轉成string, 再擷取子串。
// 1ms 100%
public string reversewords2
(string s)
//這裡也會損耗時間 結果2ms
//這樣比把字串操作好了要快!! 結果1ms
sb.(strs[i]).
(" ");
} string res = sb.
tostring()
;//這裡要判斷,不然""字串擷取-1的話會報錯!!if(
"".equals
(res)
)return res;
res = res.
substring(0
, res.
length()
-1);
return res;
}
力扣 1370 上公升下降字串 (每日一題)
給你乙個字串 s 請你根據下面的演算法重新構造字串 從 s 中選出 最小 的字元,將它 接在 結果字串的後面。從 s 剩餘字元中選出 最小 的字元,且該字元比上乙個新增的字元大,將它 接在 結果字串後面。重複步驟 2 直到你沒法從 s 中選擇字元。從 s 中選出 最大 的字元,將它 接在 結果字串的...
(力扣每日一題)重複的子字串
給定乙個非空的字串,判斷它是否可以由它的乙個子串重複多次構成。給定的字串只含有小寫英文本母,並且長度不超過10000。解題思路 方法一 列舉法 1 如果乙個長度為 n 的字串 s可以由它的乙個長度為 n 的子串 s 重複多次構成,那麼 n 一定是 n 的倍數 s 一定是 s 的字首 2 對於任意的i...
每日一題 力扣 計畫
98 驗證二叉搜尋樹 問題給定乙個二叉樹,判斷其是否是乙個有效的二叉搜尋樹。假設乙個二叉搜尋樹具有如下特徵 1.節點的左子樹只包含小於當前節點的數。2.節點的右子樹只包含大於當前節點的數。3.所有左子樹和右子樹自身必須也是二叉搜尋樹。示例 1 輸入 2 1 3 輸出 true示例2 輸入 5 1 4...