leetcode刷題第十二天

leetcode刷題12天


1.在這裏插入圖片描述這道題其實挺簡單的,但是要注意最後面是空格的情況,我的方法是使用一個key來標註從後往前第一個不是空格的位置,這樣從key一直到0判斷單詞的長度,代碼如下:

class Solution:    
	def lengthOfLastWord(self, s: str) -> int:
		if s==" ":
			return 0        
		elif len(s)==1 or len(s)==0:            
			return len(s)        
		else:            
			length=len(s)            
			count=0            
			key=length            
			for i in range(length-1,-1,-1):                
				if s[i]==' ':                    
					key=i                    
					continue                
				else:                    
					break             
			if key==0:#字符串全爲空格的情況                
				return 0            
			for j in range(key-1,-1,-1):#判斷單詞長度                
				if s[j]!=' ':                    
					count+=1                    
					continue                
				else:                    
					return count            
			return count#特殊情況,a+空格 

2.題目如下:
在這裏插入圖片描述
我真是一個憨憨,編程能力太弱了,完全按照死方法在做,老老實實按照最後一個依次相加,判斷進位,最後再加位數多的,到了最後若還有進位,則將進位加上去,代碼如下:

class Solution:    
	def addBinary(self, a: str, b: str) -> str:        
		length1=len(a)        
		i=length1-1        
		length2=len(b)        
		j=length2-1        result=[]        
		ad=0#進位        
		sum=0        
		while i!=-1 and j!=-1:            
			sum=int(a[i])+int(b[j])+ad            
			if sum<2:                
				result.append(sum)                
				i-=1                
				j-=1                
				ad=0                
				continue            
			else:                
				result.append(sum%2)                
				i-=1                
				j-=1                
				ad=1                
				continue         
		if i!=-1 :            
			for key in range(i,-1,-1):                	
				sum=int(a[key])+ad                
				if sum>=2:                    
					result.append(sum%2)                    
					ad=1                
				else:                    
					ad=0                    
					result.append(sum)               									
		if j!=-1 :            
			for key in range(j,-1,-1):                
				sum=int(b[key])+ad                
				if sum>=2:                   
					result.append(sum%2)                    
					ad=1                
				else:                    
					ad=0                    
					result.append(sum)        
		if ad==1:            
			result.append(1)                
		result.reverse()        
		result=[str(i) for i in result]        
		return ''.join(result)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章