本文共 3263 字,大约阅读时间需要 10 分钟。
定义头尾指针,调换对应的字符
class Solution(object): def reverseString(self, s): """ :type s: str :rtype: str """ s = list(s) start = 0 end = len(s)-1 while(start
class Solution(object): def removeDuplicates(self, nums): if nums == []: return 0 j = 1 for i in range(1,len(nums)): if nums[i]!=nums[i-1]: nums[j] = nums[i] j+=1 return j
class Solution(object): def removeElement(self, nums, val): """ :type nums: List[int] :type val: int :rtype: int """ if nums == []: return 0 j = 0 for i in range(len(nums)): if nums[i]!=val: nums[j]=nums[i] j+=1 return j
用j表示当前可填充的位置
class Solution(object): def moveZeroes(self, nums): j=0 for i in range(len(nums)): if nums[i]!=0: nums[j]=nums[i] j=j+1 for i in range(j,len(nums)): nums[i]=0
二分查找
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for i in range(len(nums)): tmp=target-nums[i] start=i+1 end=len(nums)-1 while(start<=end): if tmp==nums[end]: return [i+1,end+1] if tmp==nums[start]: return [i+1,start+1] mid = (end - start) / 2+start if mid==start or mid==end: break if tmp > nums[mid]: start=mid elif tmp< nums[mid]: end=mid else: return [i+1,mid+1]
class Solution(object): def reverseVowels(self,s): dic=['a','o','e','i','u','A','O','E','I','U'] tmp=list(s) start,end = 0,len(tmp)-1 while(startstart and tmp[end] not in dic): end-=1 if start
Greedy 用字典存储字符第一次出现的位置,遍历字符串,如果当前字符已经出现过,则意味着要合并到第一次出现的字符所在的区间中
class Solution(object): def partitionLabels(self, S): """ :type S: str :rtype: List[int] """ stack = [] maps = dict() for i,s in enumerate(S): if s not in maps: maps[s] = i stack.append([i,i]) else: idx = maps[s] while(stack): [start,end] = stack.pop() if idx>=start: break stack.append([start,i]) ret = [] for i in stack: ret.append(i[1]-i[0]+1) return ret
class Solution(object): def findLongestWord(self, s, d): """ :type s: str :type d: List[str] :rtype: str """ maxlen = [len(token) for token in d] pos = [0 for token in d] ret = [] for token in s: for i in range(len(pos)): if pos[i]
转载地址:http://dbqmi.baihongyu.com/