Wie optimieren Sie dieses von mir implementierte Algorithmusproblem?Python

Python-Programme
Anonymous
 Wie optimieren Sie dieses von mir implementierte Algorithmusproblem?

Post by Anonymous »

Heute habe ich ein interessantes LEETCODE -Problem angegangen: das längste Substring zu finden, ohne die Charaktere zu duplizieren. Dieses Problem führte mich in die dynamische Schiebungsfenstertechnik ein leistungsstarkes Werkzeug ein, das ich zu meinem Arsenal hinzufügen kann. Bei der Begegnung auf ein Duplikat habe ich das Programm von links nach rechts schrumpfen und sie mit einer Weile Schleife entfernt. Es muss eine Möglichkeit geben, es weiter zu optimieren. Irgendwelche Vorschläge? < /P>
class Solution(object):
def lengthOfLongestSubstring(self, s):
"""
:type s: str
:rtype: int
"""
longest = set()
l = 0
max_num = 0
# "abcabcbb"
for r in range(len(s)):
# add the s[r] if not in arr
while s[r] in longest:
longest.remove(s[l])
l += 1

if s[r] not in longest:
longest.add(s[r])
max_num = max(max_num, (r-l) + 1)
print(longest)
print(max_num)
continue

return max_num
< /code>
Dieses Problem hat mir geholfen, die zu verwendende Auswahl der richtigen Datenstruktur und -technik zu verstehen und zu erweitern und zu verkleinern. Haben Sie dieses Problem schon einmal begegnet? Wie würden Sie es optimieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post