力扣 每日一題 151 翻轉字串

2021-10-04 22:01:18 字數 1147 閱讀 5035

翻轉字串裡的單詞

給定乙個字串,逐個翻轉字串中的每個單詞。

示例 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...