leetcode 1525 字串的好分割數目(雜湊表,字串分割)
題目描述:
給你一個字串 s ,一個分割被稱為 「好分割」 當它滿足:將 s 分割成 2 個字串 p 和 q ,它們連線起來等於 s 且 p 和 q 中不同字元的數目相同。
請你返回 s 中好分割的數目。
示例 1:
輸入:s = “aacaba”
輸出:2
解釋:總共有 5 種分割字串 “aacaba” 的方法,其中 2 種是好分割。
(“a”, “acaba”) 左邊字串和右邊字串分別包含 1 個和 3 個不同的字元。
(“aa”, “caba”) 左邊字串和右邊字串分別包含 1 個和 3 個不同的字元。
(“aac”, “aba”) 左邊字串和右邊字串分別包含 2 個和 2 個不同的字元。這是一個好分割。
(“aaca”, “ba”) 左邊字串和右邊字串分別包含 2 個和 2 個不同的字元。這是一個好分割。
(“aacab”, “a”) 左邊字串和右邊字串分別包含 3 個和 1 個不同的字元。
思路:
首先用一個map,記錄整個字串的不同字元的個數
然後在用一個map記錄,分割出來的字串的不同自負的個數
比較大小,記錄結果
程式碼如下:
class Solution {
public:
int numSplits(string s) {
int res=0;
unordered_map<char,int> map1,map2;
for(char ch:s){
map1[ch]++;
}
int num=map1.size();
for(int i=0;i<s.size()-1;i++){
map1[s[i]]--;
map2[s[i]]++;
if(map1[s[i]]==0) num--;
if(map2.size()==num) res++;
}
return res;
}
};
相關文章
- 字串雜湊表字串
- 字串-字串分割字串
- 字串分割 提取數字字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- 字串雜湊字串
- 字串查詢(字串雜湊)字串
- PHP分割字串PHP字串
- 第41期:MySQL 雜湊分割槽表MySql
- Python的字串分割方法Python字串
- c++ 分割字串C++字串
- 分割字串問題字串
- python如何分割字串Python字串
- Leetcode:1616. 分割兩個字串得到迴文串LeetCode字串
- 記一次字串分割的工作字串
- 2024.9.4 leetcode 169 多數元素 (雜湊表)LeetCode
- 【轉載】Python字串操作之字串分割與組合Python字串
- 【字串】 優雅的暴力——字串下的雜湊判重問題字串
- JavaScript split() 分割字串生成陣列JavaScript字串陣列
- mysql 如何查詢逗號“,”分割的字串MySql字串
- 動態規劃——字串分割(Word Break)動態規劃字串
- 你可能不知道的字串分割技巧字串
- 例題讀入字串,包括換行,然後用#f分割字串字串
- C++分割字串,及strtok函式使用C++字串函式
- Python中,如何使用反斜槓 ““分割字串?Python字串
- Perl split字串分割函式用法指南字串函式
- 2024/12/6 【雜湊表】LeetCode1.兩數之和 【√】LeetCode
- Java String類,字串常量池,建立方法,字串的獲取,擷取,轉換,分割。Java字串
- 雜湊表(雜湊表)原理詳解
- Golang 字串分割,替換和擷取 strings.SplitGolang字串
- leetcode 深度搜尋 1641.統計字典序母音字串的數目LeetCode字串
- 淺談最長迴文子串求法——字串雜湊字串
- oracle分割槽表和分割槽表exchangeOracle
- C#的String.Split 分割字串用法詳解的程式碼C#字串
- Python科研武器庫 - 字串操作 - 路徑字串分割 os.path.split()、os.path.splitext()Python字串
- 《雜湊表》242. 有效的字母異位詞《leetcode》LeetCode
- PG的非分割槽表線上轉分割槽表
- 雜湊表
- leetcod 131.分割回文串(回溯、迴文字串)字串