1525 字串的好分割數目

2021-10-08 17:19:47 字數 1252 閱讀 2609

給你乙個字串 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

// 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...