真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

leetcode怎么判斷較大分組的位置

這篇文章主要講解了“l(fā)eetcode怎么判斷較大分組的位置”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“l(fā)eetcode怎么判斷較大分組的位置”吧!

十載的象州網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整象州建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。成都創(chuàng)新互聯(lián)公司從事“象州網(wǎng)站設(shè)計(jì)”,“象州網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

一、題目內(nèi)容

在一個(gè)由小寫字母構(gòu)成的字符串 s 中,包含由一些連續(xù)的相同字符所構(gòu)成的分組。

例如,在字符串 s = "abbxxxxzyy" 中,就含有 "a", "bb", "xxxx", "z" 和 "yy" 這樣的一些分組。

分組可以用區(qū)間 [start, end] 表示,其中 start 和 end 分別表示該分組的起始和終止位置的下標(biāo)。上例中的 "xxxx" 分組用區(qū)間表示為 [3,6] 。

我們稱所有包含大于或等于三個(gè)連續(xù)字符的分組為 較大分組 。

找到每一個(gè) 較大分組 的區(qū)間,按起始位置下標(biāo)遞增順序排序后,返回結(jié)果。

示例 1:

輸入:s = "abbxxxxzzy"
輸出:[[3,6]]
解釋:"xxxx" 是一個(gè)起始于 3 且終止于 6 的較大分組。

示例 2:

輸入:s = "abc"
輸出:[]
解釋:"a","b" 和 "c" 均不是符合要求的較大分組。

示例 3:

輸入:s = "abcdddeeeeaabbbcd"
輸出:[[3,5],[6,9],[12,14]]
解釋:較大分組為 "ddd", "eeee" 和 "bbb"

示例 4:

輸入:s = "aba"
輸出:[]

二、解題思路

利用字典存儲(chǔ)每個(gè)字母連續(xù)的區(qū)間,其中每個(gè)字母對(duì)應(yīng)的value值的第一個(gè)元素作為是否是當(dāng)前字母的標(biāo)志,結(jié)果集里存儲(chǔ)長度為3的區(qū)間即可。

三、代碼

class Solution:
    def largeGroupPositions(self, s: str) -> list:
        s_dict = {}
        for i in range(len(s)):
            if i != 0:
                if s[i] != s[i - 1]:
                    s_dict[s[i - 1]][0] = 0
                    if len(s_dict[s[i - 1]][-1]) != 2:
                        s_dict[s[i - 1]][-1].pop()
            if s[i] not in s_dict:
                s_dict[s[i]] = [1, [i]]
            else:
                if len(s_dict[s[i]][-1]) >= 2:
                    if s_dict[s[i]][0] != 0:
                        s_dict[s[i]][-1].pop(-1)
                        s_dict[s[i]][-1].append(i)
                    else:
                        s_dict[s[i]].append([i])
                else:
                    s_dict[s[i]][-1].append(i)
                    s_dict[s[i]][0] = 1
        # print(s_dict)
        res = []
        for k, v in s_dict.items():
            for j in range(1, len(v)):
                if len(v[j]) == 2:
                    if v[j][1] - v[j][0] >= 2:
                        res.append([v[j][0], v[j][1]])
        sorted_res = sorted(res, key=lambda x: x[0])
        return sorted_res


if __name__ == '__main__':
    s = "abcdddeeeeaabbbcd"
    ss = Solution()
    ans = ss.largeGroupPositions(s)
    print(ans)

感謝各位的閱讀,以上就是“l(fā)eetcode怎么判斷較大分組的位置”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)leetcode怎么判斷較大分組的位置這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!


網(wǎng)站欄目:leetcode怎么判斷較大分組的位置
文章路徑:http://weahome.cn/article/ggedjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部