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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LeetCode 828. 统计子串中的唯一字符(中心扩展)

發(fā)布時(shí)間:2024/7/5 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LeetCode 828. 统计子串中的唯一字符(中心扩展) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 題目

我們定義了一個(gè)函數(shù) countUniqueChars(s) 來統(tǒng)計(jì)字符串 s 中的唯一字符,并返回唯一字符的個(gè)數(shù)。

例如:s = “LEETCODE” ,則其中 “L”, “T”,“C”,“O”,“D” 都是唯一字符,因?yàn)樗鼈冎怀霈F(xiàn)一次,所以 countUniqueChars(s) = 5 。

本題將會(huì)給你一個(gè)字符串 s ,我們需要返回 countUniqueChars(t) 的總和,其中 t 是 s 的子字符串。
注意,某些子字符串可能是重復(fù)的,但你統(tǒng)計(jì)時(shí)也必須算上這些重復(fù)的子字符串(也就是說,你必須統(tǒng)計(jì) s 的所有子字符串中的唯一字符)。

由于答案可能非常大,請將結(jié)果 mod 10 ^ 9 + 7 后再返回。

示例 1: 輸入: "ABC" 輸出: 10 解釋: 所有可能的子串為:"A","B","C","AB","BC""ABC"。其中,每一個(gè)子串都由獨(dú)特字符構(gòu)成。所以其長度總和為:1 + 1 + 1 + 2 + 2 + 3 = 10示例 2: 輸入: "ABA" 輸出: 8 解釋: 除了 countUniqueChars("ABA") = 1 之外,其余與示例 1 相同。示例 3: 輸入:s = "LEETCODE" 輸出:92提示: 0 <= s.length <= 10^4 s 只包含大寫英文字符

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/count-unique-characters-of-all-substrings-of-a-given-string
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

2. 解題

類似題目:LeetCode 1180. 統(tǒng)計(jì)只含單一字母的子串

  • 對每個(gè)字符進(jìn)行考慮,找到每個(gè)字符前后同樣的字符的位置
  • 左右兩邊的數(shù)量相乘即為,該字符可以出現(xiàn)在子串的次數(shù)
class Solution { //C++ public:int uniqueLetterString(string s) {int i, j, k, count = 0;for(j = 0; j < s.size(); ++j){i = j-1, k = j+1;while(i>=0 && s[i] != s[j])i--;while(k<s.size() && s[j] != s[k])k++;count = (count+(j-i)*(k-j))%1000000007;}return count;} };

64 ms 7.2 MB

另一種方法,預(yù)先存儲(chǔ)下來相同字符的位置

class Solution { public:int uniqueLetterString(string s) {int count = 0;unordered_map<char,set<int>> m;for(int i = 0; i < s.size(); ++i){m[s[i]].insert(i);}int lenl, lenr;for(int i = 0; i < s.size(); ++i){auto it = m[s[i]].find(i);if(it == m[s[i]].begin())lenl = i+1;else{auto itl = it;itl--;lenl = i-*(itl);}if(it == --m[s[i]].end())lenr = s.size()-i;else{it++;lenr = *(it)-i;}count = (count+lenl*lenr)%1000000007;}return count;} };

276 ms 21.9 MB

python3 解答

class Solution:def uniqueLetterString(self, s: str) -> int:count = 0for j in range(len(s)):i = j-1 k = j+1while i>=0 and s[i]!=s[j]:i -= 1while k<len(s) and s[j]!=s[k]:k += 1count = (count+(j-i)*(k-j))%1000000007return count

804 ms 13.7 MB

總結(jié)

以上是生活随笔為你收集整理的LeetCode 828. 统计子串中的唯一字符(中心扩展)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰三级 | 男人天堂视频网站 | 性色浪潮av| 九九色综合 | 国产极品美女高潮无套在线观看 | 久久av红桃一区二区小说 | 琪琪射 | 国模视频一区二区 | 亚洲成人av中文字幕 | 激情综合网激情 | 久久人人爽 | 国产毛片一区 | 金鱼妻日剧免费观看完整版全集 | 日本黄xxxxxxxxx100 | 九九精品在线观看视频 | 中文字幕第五页 | 天天操夜夜操视频 | 亚洲精品成人久久 | 欧美交 | 日韩亚洲欧美在线观看 | 国产日韩欧美日韩大片 | 中文字幕乱码一区二区三区 | 亚洲国产精品久久 | 国产在线18 | 亚洲男人天堂2022 | 久久久久久无码精品大片 | 丁香婷婷久久久综合精品国产 | www.视频一区 | 久久综合久久久久 | 国产网站入口 | 一二三四视频社区在线 | 办公室摸腿吻胸激情视频 | 欧美整片sss | 亚洲国产欧美日韩在线 | 岛国片免费在线观看 | 成人黄色av网站 | 亚洲永久在线 | 免费成人毛片 | 日本后进式猛烈xx00动态图 | 欧美日韩片| 在线观看国产精品入口男同 | 91口爆一区二区三区在线 | 国产免费一区 | 日日夜夜亚洲 | 免费在线视频一区二区 | 亚洲欧美综合一区 | av涩涩| 久久久久亚洲av无码专区 | 捆绑裸体绳奴bdsm亚洲 | 色婷婷色综合 | 国产一级片免费 | 6080av| 国产一av | 91免费视频播放 | 日韩成人精品在线观看 | 日本www黄 | av免费一区 | 天天射日日操 | 国产裸体永久免费无遮挡 | 精品一区二区在线观看 | 草逼国产 | 欧美视频一区 | 一本色道久久综合亚洲精品小说 | 99精品久久久久久 | 黄色三级免费观看 | 免费污网站在线观看 | 黄毛片在线观看 | 污视频91 | 成人免费视 | 打屁股黄文 | 综合在线观看 | 少妇裸体视频 | 麻豆视频网站 | 国产99久久久国产精品成人免费 | 日本一区二区三区电影在线观看 | 久草国产精品视频 | k8yy毛片| 免费看一级黄色片 | 中国女人真人一级毛片 | 精品国产乱码久久久久久浪潮 | 久久久国产精品人人片 | 国产精品人人做人人爽人人添 | 一区二区三区视频在线观看免费 | 国产黄色三级网站 | 久久久久1| 黄瓜视频污在线观看 | 青青草国产在线视频 | 亚洲 欧美 中文字幕 | 手机在线免费视频 | 久久久人体 | 丁香花五月 | 黄色综合网 | 国产视频一区二 | 17c一起操 | www五月 | 色呦呦视频| 亚洲一级伦理 | 久草网视频 | 日本一区二区三区中文字幕 |