LeetCode 第 201 場周賽

2022-07-30 09:18:10 字數 4276 閱讀 1335

手速慢,掛兩發。

給你乙個由大小寫英文本母組成的字串s

乙個整理好的字串中,兩個相鄰字元s[i]s[i + 1]不會同時滿足下述條件:

請你將字串整理好,每次你都可以從字串中選出滿足上述條件的兩個相鄰字元並刪除,直到字串整理好為止。

請返回整理好的字串。題目保證在給出的約束條件下,測試樣例對應的答案是唯一的。

示例 1:

輸入:s = "leeeetcode"

輸出:"leetcode"

解釋:無論你第一次選的是 i = 1 還是 i = 2,都會使 "leeeetcode" 縮減為 "leetcode" 。

示例 2:

輸入:s = "abbacc"

輸出:""

解釋:存在多種不同情況,但所有的情況都會導致相同的結果。例如:

"abbacc" --> "aacc" --> "cc" --> ""

"abbacc" --> "abba" --> "aa" --> ""

示例 3:

輸入:s = "s"

輸出:"s"

class solution 

string makegood(string s) else

ans += s[i];

}return ans;

}};

給你兩個正整數nk,二進位制字串sn的形成規則如下:

其中+表示串聯操作,reverse(x)返回反轉x後得到的字串,而invert(x)則會翻轉 x 中的每一位(0 變為

1,而 1 變為 0)

例如,符合上述描述的序列的前 4 個字串依次是:

請你返回snk位字元,題目資料保證k一定在sn長度範圍以內。

示例 1:

輸入:n = 3, k = 1

輸出:"0"

解釋:s3 為 "0111001",其第 1 位為 "0" 。

示例 2:

輸入:n = 4, k = 11

輸出:"1"

解釋:s4 為 "011100110110001",其第 11 位為 "1" 。

示例 3:

輸入:n = 1, k = 1

輸出:"0"

示例 4:

輸入:n = 2, k = 3

輸出:"1"

class solution 

char findkthbit(int n, int k)

return s[n][k - 1];

}};

給你乙個陣列nums和乙個整數target

請你返回非空不重疊子陣列的最大數目,且每個子陣列中數字和都為target

示例 1:

輸入:nums = [1,1,1,1,1], target = 2

輸出:2

解釋:總共有 2 個不重疊子陣列(加粗數字表示) [1,1,1,1,1] ,它們的和為目標值 2 。

示例 2:

輸入:nums = [-1,3,5,1,4,2,-9], target = 6

輸出:2

解釋:總共有 3 個子陣列和為 6 。

([5,1], [4,2], [3,5,1,4,2,-9]) 但只有前 2 個是不重疊的。

示例 3:

輸入:nums = [-2,6,6,3,5,4,1,2,8], target = 10

輸出:3

示例 4:

輸入:nums = [0,0,0], target = 0

輸出:3

class solution ;

int s(0);

vectorans(nums.size());

for(int i = 0; i < nums.size(); i++)

g[s] = (i);

}return ans.back();

}};

有一根長度為n個單位的木棍,棍上從0n標記了若干位置。例如,長度為6的棍子可以標記如下:

給你乙個整數陣列cuts,其中cuts[i]表示你需要將棍子切開的位置。

你可以按順序完成切割,也可以根據需要更改切割的順序。

每次切割的成本都是當前要切割的棍子的長度,切棍子的總成本是歷次切割成本的總和。對棍子進行切割將會把一根木棍分成兩根較小的木棍(這兩根木棍的長度和就是切割前木棍的長度)。請參閱第乙個示例以獲得更直觀的解釋。

返回切棍子的最小總成本

示例 1:

輸入:n = 7, cuts = [1,3,4,5]

輸出:16

解釋:按 [1, 3, 4, 5] 的順序切割的情況如下所示:

第一次切割長度為 7 的棍子,成本為 7 。第二次切割長度為 6 的棍子(即第一次切割得到的第二根棍子),第三次切割為長度 4 的棍子,最後切割長度為 3 的棍子。總成本為 7 + 6 + 4 + 3 = 20 。

而將切割順序重新排列為 [3, 5, 1, 4] 後,總成本 = 16(如示例圖中 7 + 4 + 3 + 2 = 16)。

示例 2:

輸入:n = 9, cuts = [5,6,1,4,2]

輸出:22

解釋:如果按給定的順序切割,則總成本為 25 。總成本 <= 25 的切割順序很多,例如,[4,6,5,2,1] 的總成本 = 22,是所有可能方案中成本最小的。

石子合併原題

class solution 

}return dp[0][n - 1];

} int mincost(int n, vector& cuts)

};

LeetCode 第201場周賽題解報告

知識點 棧如果棧滿足上述兩個條件,則彈出棧頂的兩個元素。最後棧內的字元即為答案 class solution return stack 知識點 預處理因為只會對前 20 個 s 進行詢問,所以可以先預處理出s1,s2,s2 s20。這樣對於每次詢問就可以o 1 的給出答案了 全區變數,用於儲存 s1...

第 201 場力扣周賽題解

極限過題,最後30s才debug出來,真滴菜。5483.整理字串 思路 按照題目要求來即可,乙個小坑點是刪除了兩個字元後原本不相鄰的字元變得相鄰,因此需要注意一下。class solution while st.isempty return str.reverse tostring 5484.找出第...

leetcode 第132場周賽

愛麗絲和鮑勃一起玩遊戲,他們輪流行動。愛麗絲先手開局。最初,黑板上有乙個數字n。在每個玩家的回合,玩家需要執行以下操作 如果玩家無法執行這些操作,就會輸掉遊戲。只有在愛麗絲在遊戲中取得勝利時才返回true,否則返回false。假設兩個玩家都以最佳狀態參與遊戲。示例 1 輸入 2輸出 true解釋 愛...