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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章