日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c字符串分割成数组_leetcode第31双周赛第三题leetcode1525. 字符串的好分割数目

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c字符串分割成数组_leetcode第31双周赛第三题leetcode1525. 字符串的好分割数目 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

leetcode1525. 字符串的好分割數目

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

方法:哈希集合

思路:

本題可以直接使用模擬來解決。

我們可以知道,長度為n的字符串,可以有n-1種分割方式。

我們從頭開始遍歷,使用一個集合(哈希表)word來保存目前遍歷到的字符串中存在的字符(集合會將重復的字符過濾)。

使用一個長度為n的數組begin,begin[i]表示s[:i+1]子串中存在的不同字符數(即集合word此時的長度)。

然后我們將word集合清空,從s的最后往前遍歷,直到s[1](因為遍歷到s[0]的話,右側字符串為s,左側字符串不存在,不符合題意),加入遍歷到字符s[i],那么此時word的長度即為s[i:]子串中的不同字符數。此時如果len(word) = begin[i-1],那么即是一種好分割。

統計所有的好分割數,返回即可。

  • 遍歷了兩次,而對集合求長度的時間復雜度為O(1),所以總的時間復雜度為O(2n),漸進時間復雜度為O(n)。
  • 使用了一個集合和數組,空間復雜度為O(n)。

代碼:

Python3:

class Solution:def numSplits(self, s: str) -> int:res = 0n = len(s)# begin[i]存放s[:i+1]中不同字符的數量begin = [0 for _ in range(n)]word = set()for i in range(n):word.add(s[i])begin[i] = len(word)word.clear()# 下面開始從后往前遍歷,統計右半部分的情況,i的時候,len(word)即s[i:]的不同字符數# 與之相匹配的即為begin[i-1],如果兩者相等,則為好分割。for i in range(n-1,0,-1):word.add(s[i])if begin[i-1] == len(word):res += 1return res

cpp:

class Solution { public:int numSplits(string s) {int res = 0;int n = s.size();// begin[i]存放s[:i+1]中不同字符的數量auto begin = vector<int>(n,0);unordered_set<char> word;for (int i = 0; i < n-1; ++i){word.insert(s[i]);begin[i] = word.size();}word.clear();// 下面開始從后往前遍歷,統計右半部分的情況,i的時候,len(word)即s[i:]的不同字符數// 與之相匹配的即為begin[i-1],如果兩者相等,則為好分割。for (int i=n-1 ; i > 0; --i){word.insert(s[i]);if (begin[i-1] == word.size()) res += 1;}return res;} };

結果:

總結

以上是生活随笔為你收集整理的c字符串分割成数组_leetcode第31双周赛第三题leetcode1525. 字符串的好分割数目的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久天堂 | 国产一区免费视频 | 黄色在线小视频 | www.夜夜操 | 电家庭影院午夜 | 日日夜夜一区 | 经典杯子蛋糕日剧在线观看免费 | 成人做爰66片免费看网站 | 精品一区二区三区入口 | 国产精品海角社区 | 在线观看精品国产 | 成人免费影院 | www.youjizz.com国产 | 国产人成在线观看 | 国精产品99永久一区一区 | 视频在线不卡 | 国产精品亚洲五月天丁香 | 亚欧视频在线观看 | 一级黄色伦理片 | 午夜电影你懂的 | 国产精品免费无遮挡无码永久视频 | 草草视频网站 | 久久久高清 | 精品久久视频 | 欧美不卡在线观看 | 免费av手机在线观看 | 在线h网| 69性影院 | 亚洲综合久久av一区二区三区 | 欧美精品一区二区性色a+v | 男人操女人的软件 | 97超碰福利 | 国产av一区二区不卡 | 亚洲成色| 男女黄色录像 | 色婷婷18| 最新91在线 | 午夜激情一区二区 | 黄色二级毛片 | 亚洲av色一区二区三区精品 | 大毛片| 国产精品福利一区二区三区 | 色xxxxx| 性色在线| 中文字幕精品久久久久人妻红杏ⅰ | 午夜精品久久久久久久99热黄桃 | 一区二区三区波多野结衣 | 啪啪啪毛片 | 国产三级全黄 | 国产乱码一区二区三区播放 | 色天堂影院 | 国产精品边吃奶边做爽 | 少妇福利视频 | 亚洲aa视频| 男同av在线观看一区二区三区 | 郑艳丽三级| 丰满少妇熟乱xxxxx视频 | 日本电影成人 | 无码人妻一区二区三区免费n鬼沢 | gv天堂gv无码男同在线观看 | 福利在线免费视频 | 国产乱码精品一区二区三区五月婷 | 色呦呦中文字幕 | 不卡一区二区三区四区 | 男生操男生网站 | 亚洲日批 | 日韩黄色片免费看 | 娇小萝被两个黑人用半米长 | 欧美不卡在线观看 | 俄罗斯精品一区二区三区 | 538国产视频 | 国产日韩三级 | 香蕉视频啪啪 | 女人的天堂av在线 | 女人扒开屁股让我添 | 制服丝袜成人动漫 | 日韩成人福利视频 | 天堂福利在线 | 精品成人无码久久久久久 | 伊人tv | 国产亚洲欧美精品久久久久久 | babes性欧美69 | 一区二三区 | 精品人妻一区二区三区四区久久 | 欧美交换国产一区内射 | 欧美视频一区二区在线 | 日韩三级观看 | 骑骑上司妻电影 | 国产色片在线观看 | 国产乱码精品一区二三赶尸艳谈 | 九九精品在线播放 | 91影院在线观看 | 亚洲av综合一区 | 一本色道久久综合亚洲精品按摩 | 日日夜夜骑 | 99久久精品国产成人一区二区 | 性色av浪潮av | 亚洲国产精品无码专区 | 正在播放亚洲 |