解题思路:
- class Solution(object):
- def lengthOfLongestSubstring(self, s):
- """
- :type s: str
- :rtype: int
- """
- n = len(s)
- ans = start = 0
- map = {}
- for end,val in enumerate(s): #end是提取字符串s中元素的位置
- if val in map.keys():
- start = max(map.get(val)+1,start) #这里的+1是将指针后移,删除开头的重复元素
- map[val] = end #将字符和end存入map
- ans = max(ans,end-start+1)
- return ans
特殊情况:
这个题我想的是合并nums1和nums2,排序后根据length是单数还是双数找到中位数。
- class Solution(object):
- def findMedianSortedArrays(self, nums1, nums2):
- """
- :type nums1: List[int]
- :type nums2: List[int]
- :rtype: float
- """
- #num = nums1.append(nums2)
- numss = nums1 + nums2
- num = sorted(numss)
- n = len(num)
-
- if n%2==0:
- ans = 0.5*(num[(n/2)-1]+num[n/2])
- elif n%2 ==1:
- ans = num[(n-1)/2]
-
- return ans