給你乙個字串 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 個不同的字元。
示例 2:
輸入:s = 「abcd」
輸出:1
解釋:好分割為將字串分割成 (「ab」, 「cd」) 。
示例 3:
輸入:s = 「aaaaa」
輸出:4
解釋:所有分割都是好分割。
示例 4:
輸入:s = 「acbadbaada」
輸出:2
s 只包含小寫英文本母。
1 <= s.length <= 10^5
字首和:
len=s.size()
suml[i]前i個字元有多少個不一樣的。cntl[025]表示az是否訪問過。
sumr[i]從i到len有多少個字元不一樣。cntr[025]表示az是否訪問過
思路:字首和預處理完,直接遍歷一遍字串統計res+=suml[i]==sumr[i+1]?0:1;
即可
class solution else sumr[i+1]=sumr[i+2];
}int res=0;
// for(int i=1;i<=len-1;i++)
// cout/ cout<<"\n";
// for(int i=2;i<=len;i++)
// cout
return res;
}};
三 字串的好分割數目((Biweekly31)
題目描述 給你乙個字串 s 乙個分割被稱為 好分割 當它滿足 將 s 分割成 2 個字串 p 和 q 它們連線起來等於 s 且 p 和 q 中不同字元的數目相同。請你返回 s 中好分割的數目。示例 1 輸入 s aacaba 輸出 2 解釋 總共有 5 種分割字串 aacaba 的方法,其中 2 種...
1989 字串分割
time limit 1 s memory limit 32 mb submission 241 ac 75 score 19.88 submit status alex的好朋友都去生猴子了,所以她只好百無聊賴地繼續玩字串遊戲。輸入乙個長度不超過10000的字串,字串中只含字母和空格,空格用於分隔單...
C 入門6 7 字串的分割
分割是通過split方法來實現的。其中有多種過載形式,這裡只講一種。格式為 字串1.split 字元或字元陣列 分割後返回值是乙個字串陣列。string mystr 100 30 130haha string changemystr mystr.split newchar foreach strin...