手速慢,掛兩發。
給你乙個由大小寫英文本母組成的字串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;
}};
給你兩個正整數n
和k
,二進位制字串sn
的形成規則如下:
其中+
表示串聯操作,reverse(x)
返回反轉x
後得到的字串,而invert(x)
則會翻轉 x 中的每一位(0 變為
1,而 1 變為 0)
例如,符合上述描述的序列的前 4 個字串依次是:
請你返回sn
的第k
位字元,題目資料保證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
個單位的木棍,棍上從0
到n
標記了若干位置。例如,長度為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解釋 愛...