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;
}
};
相關文章
- 字串雜湊表字串
- 字串-字串分割字串
- 字串分割 提取數字字串
- 字串雜湊字串
- 分割字串字串
- 字串查詢(字串雜湊)字串
- 資料庫表分割技術淺析(水平分割/垂直分割/庫表雜湊)資料庫
- 第41期:MySQL 雜湊分割槽表MySql
- PHP分割字串PHP字串
- 字串分割方法字串
- LeetCode-824. Goat Latin(字串分割)LeetCodeGo字串
- 分割字串問題字串
- shell中字串分割字串
- c++ 分割字串C++字串
- Python的字串分割方法Python字串
- python如何分割字串Python字串
- 字串分割注意事項字串
- oracle hash partition雜湊分割槽(一)Oracle
- SCU 4438 Censor (字串雜湊)字串
- java split進行字串分割Java字串
- 【字串】 優雅的暴力——字串下的雜湊判重問題字串
- (字串雜湊表)找到字串中不重複出現字元的最長子串長度字串字元
- 記一次字串分割的工作字串
- 建立一個字串分割的函式字串函式
- [AWK]使用AWK進行分割字串以及擷取字串字串
- oracle儲存過程將引數字串分割sqlOracle儲存過程字串SQL
- JavaScript split() 分割字串生成陣列JavaScript字串陣列
- js如何使用指定字元分割字串JS字元字串
- oracle hash partition雜湊分割槽(二)_操作限制Oracle
- js實現的用指定字元每隔指定位數分割字串JS字元字串
- P3370 【模板】字串雜湊字串
- 【轉載】Python字串操作之字串分割與組合Python字串
- Swift3.0語言教程分割字串與擷取字串Swift字串
- mysql 如何查詢逗號“,”分割的字串MySql字串
- 動態規劃——字串分割(Word Break)動態規劃字串
- C++常用字串分割方法C++字串
- Oracle 11g 雜湊、LIST分割槽測試Oracle
- Leetcode:1616. 分割兩個字串得到迴文串LeetCode字串