给定一个整数数组 nums
和一个目标值 target
,请你在该数组中找出和为目标值的 两个 整数。
你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。
示例:
给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]
class Solution(object): def twoSum(self, nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ for m in range (len(nums)): for n in range (m+1,len(nums)): if nums[m]+nums[n]==target: return [m,n]
def twoSum(nums, target): """ :type nums: List[int] :type target: int :rtype: List[int] """ d = {} for i, item in enumerate(nums): tmp = target - item for key, value in d.items(): if value == tmp: return [key, i] d[i] = item return None
class Solution: def isPalindrome(self, x: int) -> bool: if str(x)[::-1]==str(x): return True else: return False
class Solution: def romanToInt(self, s: str) -> int: roman_dic={'I':1, 'IV':3, 'V':5, 'IX':8, 'X':10, 'XL':30, 'L':50, 'XC':80, 'C':100, 'CD':300, 'D':500, 'CM':800, 'M':1000} roman_sum=0 return sum(roman_dic.get(s[max(i - 1, 0):i + 1], roman_dic[n]) for i, n in enumerate(s)) # # for i,n in enumerate(s): # roman_sum+=roman_dic.get(s[max(i - 1, 0):i + 1], roman_dic[n]) # return roman_sum
class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: res="" for tmp in zip(*strs): tmp_set=set(tmp) if len(tmp_set)==1: res+=tmp[0] else: break return res
class Solution: def addStrings(self, num1: str, num2: str) -> str: add=0 res="" new_num1=num1[::-1] new_num2=num2[::-1] if len(new_num1)>len(new_num2): new_num2+="0"*(len(new_num1)-len(new_num2)) else: new_num1+="0"*(len(new_num2)-len(new_num1)) n=max(len(new_num1),len(new_num2)) for i in range(n): tmp=int(new_num1[i])+int(new_num2[i])+add res+= str(tmp%10) add=int(tmp/10) if add!=0: res+=str(add) # 这里的if处理:当两个数相加为10或者100时,当最后一个add=1时,把进位打出来 return res[::-1]
思路:
我们可以对bits 数组从左到右扫描来判断最后一位是否为一比特字符。当扫描到第 i 位时,如果 bits[i]=1,那么说明这是一个两比特字符,将 i 的值增加 2。如果 bits[i]=0,那么说明这是一个一比特字符,将 i 的值增加 1。
如果 i 最终落在了 bits.length-1 的位置,那么说明最后一位一定是一比特字符。
class Solution: def isOneBitCharacter(self, bits) -> bool: i=0 if len(bits) == 1: return True while i<(len(bits)-1): if bits[i]==0: i+=1 elif bits[i]==1: i+=2 if i==len(bits): return False else: return True