吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Longest Substring no Repeat Characters

汽車電子技術(shù) ? 來源:神經(jīng)網(wǎng)絡(luò)與強(qiáng)化學(xué)習(xí) ? 作者:Jemma Liu ? 2023-03-01 13:37 ? 次閱讀

今天的題目是第3題,medium難度.

  1. Longest Substring Without Repeating Characters

Given a string, find the length of the longest substring without repeating characters.

Example 1:

Input: "abcabcbb"
Output: 3 
Explanation: The answer is "abc", with the length of 3.

Example 2:

Input: "bbbbb"
Output: 1
Explanation: The answer is "b", with the length of 1.

Example 3:

Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

3. 無重復(fù)字符的最長子串

給定一個(gè)字符串,請(qǐng)你找出其中不含有重復(fù)字符的 最長子串 的長度。

示例 1:

輸入: "abcabcbb"
輸出: 3 
解釋: 因?yàn)闊o重復(fù)字符的最長子串是 "abc", 所以其長度為3。

示例 2:

輸入: "bbbbb"
輸出: 1
解釋: 因?yàn)闊o重復(fù)字符的最長子串是 "b",所以其長度為1。

示例 3:

輸入: "pwwkew"
輸出: 3
解釋: 因?yàn)闊o重復(fù)字符的最長子串是 "wke",所以其長度為3。請(qǐng)注意,你的答案必須是 子串 的長度,"pwke"是一個(gè)子序列,不是子串。

My answer:

首先對(duì)于查詢是否存在的操作我們選擇用dict來做(hash速度快), 對(duì)整個(gè)字符串進(jìn)行遍歷 用dict字典中存儲(chǔ)已經(jīng)訪問過的數(shù)據(jù). 對(duì)于未存在于dict中的元素直接添加key:value為s[i]:i; 當(dāng)遇到已經(jīng)存在的元素更新start的位置為dict[s[i]]的下一位, 因?yàn)閐ict中的值仍然保留start之前的數(shù)元素, 所以遇到的存在元素未必是有效的, 需要對(duì)start的更新值進(jìn)行判斷start = max(start, dct[s[i]] + 1). 最后更字典和最大長度即可.

class Solution:


    def lengthOfLongestSubstring(self, s: str) -> int:
        start = 0
        max_len = 0
        dct = {}
        for i in range(len(s)):
            if s[i] in dct:
                start = max(start, dct[s[i]] + 1) 
            dct[s[i]] = i
            max_len = max(max_len, i - start+1)
        return max_len
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    585

    瀏覽量

    20603
  • 字典
    +關(guān)注

    關(guān)注

    0

    文章

    13

    瀏覽量

    7724
  • Start
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    10434
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    重點(diǎn)介紹所有綜合編譯器都支持的for和repeat循環(huán)

    循環(huán)語句允許多次執(zhí)行編程語句或begin-end語句組。SystemVerilog中的循環(huán)語句有:for、repeat、while、do..while、foreach和forever。
    的頭像 發(fā)表于 11-03 09:10 ?2236次閱讀
    重點(diǎn)介紹所有綜合編譯器都支持的for和<b class='flag-5'>repeat</b>循環(huán)

    Labview8.5版本 關(guān)于write characters to file VI的問題

    `是不是Labview8.5版本 沒有write characters to file 這個(gè)函數(shù)啊,我在清華教程里面看到使用這個(gè)函數(shù)的例子,怎么在8.5版本上找不到這個(gè)函數(shù)呢?奇怪。`
    發(fā)表于 03-14 19:45

    Linux Shell系列教程之Shell字符串用法

    :position:length}在$string中, 從位置$position開始提取長度為$length的子串${string#substring}從變量$string的開頭, 刪除最短匹配
    發(fā)表于 08-29 16:01

    AD09多通道設(shè)計(jì)如何批量給Sheet Entry 加Repeat

    AD多通道設(shè)計(jì)時(shí),需要將Sheet Symbol中的各Sheet Entry加Repeat,現(xiàn)在都是手動(dòng)加的,請(qǐng)問有沒有可以批量的方法?
    發(fā)表于 10-09 09:02

    將字符添加到Wildcard Characters時(shí),在屏幕上看不到這些字母怎么處理?

    當(dāng)我將字符添加到 Wildcard Characters 時(shí),我在屏幕上看不到這些字母。我怎么辦?
    發(fā)表于 12-15 06:31

    EFUSE_RD_REPEAT_ERR4_REG的正確地址是什么?

    好像是不同ESP-*芯片的EFUSE_RD_REPEAT_ERR4_REG地址有些不一致。例如,對(duì)于 ESP32-S3,TRM 將 EFUSE_RD_REPEAT_ERR4_REG 列為寄存器摘要表
    發(fā)表于 04-11 06:55

    PCF2113x LCD控制器驅(qū)動(dòng)器數(shù)據(jù)手冊(cè)

    display of 2 lines of 12 characters or 1 line of 24 characters with 5 ´ 8 dotformat. All necessary functions for the display are
    發(fā)表于 03-10 16:53 ?15次下載

    FPGA_165B_Repeat_DigitalIO

    FPGA_165B_Repeat_DigitalIO,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 02-22 16:03 ?0次下載

    FPGA_165A_Repeat_DigitalIO

    FPGA_165A_Repeat_DigitalIO,好東西,喜歡的朋友可以下載來學(xué)習(xí)。
    發(fā)表于 02-22 16:03 ?0次下載

    簡談FPGA verilog中的repeat用法與例子

    ????? ?大家好,又到了每日學(xué)習(xí)的時(shí)間了,今天我們來聊一聊FPGA verilog中的repeat用法與例子。? ? ? ?repeat 循環(huán)語句執(zhí)行指定循環(huán)數(shù),如果循環(huán)計(jì)數(shù)表達(dá)式的值不確定
    的頭像 發(fā)表于 08-15 14:07 ?1.9w次閱讀
    簡談FPGA verilog中的<b class='flag-5'>repeat</b>用法與例子

    用獨(dú)特手勢(shì)控制空間中的可播放角色

    This video shows gameplay from each of the five different playable characters in Space Between.
    的頭像 發(fā)表于 10-29 06:59 ?2291次閱讀

    TensorFlow中讀數(shù)據(jù)三種方法

    repeat將整個(gè)序列重復(fù)多次,只用用來處理epoch。如果直接調(diào)用repeat()的話,生成的序列就會(huì)無限重復(fù)下去,沒有結(jié)束,因此也不會(huì)拋出。tf.errors.OutOfRangeError異常:
    的頭像 發(fā)表于 04-01 14:40 ?3052次閱讀

    C語言算法分析:求最長的遞增數(shù)列

    求最長的遞增數(shù)列(Longest Increasing sequence, LIS)是一個(gè)比較常見的問題。
    的頭像 發(fā)表于 06-22 14:57 ?3252次閱讀
    C語言算法分析:求最長的遞增數(shù)列

    Longest Palindromic Substring

    回文字符串, 是正讀反讀都一樣的字符串。比較直接的方法是在每個(gè)字符位置上向前和向后搜索找到回文字符串。其中,對(duì)于搜索時(shí)需要對(duì)奇數(shù)位和偶數(shù)位兩種形式進(jìn)行探索,奇數(shù)位以當(dāng)前位置的字符為中心;偶數(shù)位以當(dāng)前位置和其相鄰一個(gè)位置的兩個(gè)字符為中心向兩邊拓展。
    的頭像 發(fā)表于 03-01 11:28 ?425次閱讀

    verilog中repeat必須用begin和end嗎

    在Verilog中,repeat語句不需要使用begin和end塊。repeat語句是一種循環(huán)控制語句,允許重復(fù)執(zhí)行一個(gè)代碼塊指定的次數(shù)。它的一般語法如下: repeat (n) statement
    的頭像 發(fā)表于 02-23 10:14 ?1318次閱讀
    海滨湾国际娱乐城| 百家乐筹码片| 百家乐平台信誉排名| 百家乐网址哪里有| e世博百家乐技巧| 大杀器百家乐官网学院| 法拉利百家乐官网的玩法技巧和规则 | 大发888 备用6222| 威尼斯人娱乐城梧州店| 大发888真人网| 前郭尔| 玩百家乐官网怎么能赢吗| 百家乐官网正网包杀| 电子百家乐官网假在线哪| 玩百家乐技巧博客| 足球百家乐投注网出租 | 路单百家乐官网的玩法技巧和规则| 百家乐官网的玩法技巧和规则 | 多伦县| 玩网上百家乐官网的技巧 | 678百家乐官网博彩赌场娱乐网规则 | 网上百家乐官网合法吗| 百家乐官网游戏大厅下| 新濠百家乐官网娱乐城 | 广州百家乐官网赌场| 百家乐官网翻天粤语下载| 百家乐官网博娱乐平台赌百家乐官网 | 百家乐官网规则技法| 百家乐官网红桌布| 乐天堂百家乐娱乐| 太阳城在线娱乐网| 百家乐太阳城线上| 百家乐官网代理龙虎| 百家乐网站那个好| 大三巴娱乐城开户| 百家乐什么牌最大| 大发888娱乐场网页| 百家乐统计概率| 体育博彩概论| 澳门百家乐打法精华| 波浪百家乐官网测试|