精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Longest Substring no Repeat Characters

汽車電子技術 ? 來源:神經網絡與強化學習 ? 作者: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. 無重復字符的最長子串

給定一個字符串,請你找出其中不含有重復字符的 最長子串 的長度。

示例 1:

輸入: "abcabcbb"
輸出: 3 
解釋: 因為無重復字符的最長子串是 "abc", 所以其長度為3。

示例 2:

輸入: "bbbbb"
輸出: 1
解釋: 因為無重復字符的最長子串是 "b",所以其長度為1。

示例 3:

輸入: "pwwkew"
輸出: 3
解釋: 因為無重復字符的最長子串是 "wke",所以其長度為3。請注意,你的答案必須是 子串 的長度,"pwke"是一個子序列,不是子串。

My answer:

首先對于查詢是否存在的操作我們選擇用dict來做(hash速度快), 對整個字符串進行遍歷 用dict字典中存儲已經訪問過的數據. 對于未存在于dict中的元素直接添加key:value為s[i]:i; 當遇到已經存在的元素更新start的位置為dict[s[i]]的下一位, 因為dict中的值仍然保留start之前的數元素, 所以遇到的存在元素未必是有效的, 需要對start的更新值進行判斷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
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 字符串
    +關注

    關注

    1

    文章

    577

    瀏覽量

    20485
  • 字典
    +關注

    關注

    0

    文章

    13

    瀏覽量

    7696
  • Start
    +關注

    關注

    0

    文章

    73

    瀏覽量

    10243
收藏 人收藏

    評論

    相關推薦

    重點介紹所有綜合編譯器都支持的for和repeat循環

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

    Labview8.5版本 關于write characters to file VI的問題

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

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

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

    AD09多通道設計如何批量給Sheet Entry 加Repeat

    AD多通道設計時,需要將Sheet Symbol中的各Sheet Entry加Repeat,現在都是手動加的,請問有沒有可以批量的方法?
    發表于 10-09 09:02

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

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

    EFUSE_RD_REPEAT_ERR4_REG的正確地址是什么?

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

    PCF2113x LCD控制器驅動器數據手冊

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

    FPGA_165B_Repeat_DigitalIO

    FPGA_165B_Repeat_DigitalIO,好東西,喜歡的朋友可以下載來學習。
    發表于 02-22 16:03 ?0次下載

    FPGA_165A_Repeat_DigitalIO

    FPGA_165A_Repeat_DigitalIO,好東西,喜歡的朋友可以下載來學習。
    發表于 02-22 16:03 ?0次下載

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

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

    用獨特手勢控制空間中的可播放角色

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

    TensorFlow中讀數據三種方法

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

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

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

    Longest Palindromic Substring

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

    verilog中repeat必須用begin和end嗎

    在Verilog中,repeat語句不需要使用begin和end塊。repeat語句是一種循環控制語句,允許重復執行一個代碼塊指定的次數。它的一般語法如下: repeat (n) statement
    的頭像 發表于 02-23 10:14 ?1104次閱讀