
获得徽章 8
- #每日一题# 无重复的最长子串
class Solution:
def lengthOfLongestSubstring(self, s: str) -> int:
# 哈希集合,记录每个字符是否出现过
occ = set()
n = len(s)
# 右指针,初始值为 -1,相当于我们在字符串的左边界的左侧,还没有开始移动
rk, ans = -1, 0
for i in range(n):
if i != 0:
# 左指针向右移动一格,移除一个字符
occ.remove(s[i - 1])
while rk + 1 < n and s[rk + 1] not in occ:
# 不断地移动右指针
occ.add(s[rk + 1])
rk += 1
# 第 i 到 rk 个字符是一个极长的无重复字符子串
ans = max(ans, rk - i + 1)
return ans展开评论点赞 - #每日一题# 判断字符是否唯一
class Solution(object):
def isUnique(self, astr):
"""
:type astr: str
:rtype: bool
"""
s_len = len(astr)
for x in range(s_len):
if astr.count(astr[x]) > 1:
return False
return True展开评论点赞 - #每日一题# URL化
class Solution(object):
def replaceSpaces(self, S, length):
"""
:type S: str
:type length: int
:rtype: str
"""
return S[:length].replace(' ','%20')
# ls = list(S)
# for x in range(0,length):
# if ls[x] == ' ':
# ls[x] = "%20"
# return ''.join(ls).rstrip()展开评论点赞 - #每日一题# 删除重复项
class Solution(object):
def removeDuplicates(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
length = len(nums)
for i in range(length-1,0,-1):
if nums[i] == nums[i-1]:
# del nums[i]
nums.pop(i)
return len(nums)展开评论点赞