企业真题训练-Zoom
作者:互联网
1、斐波那契数列
非递归巧妙解法
class Solution:
def fib(self, n: int) -> int:
if n<2:
return n
a,b=0,1
for i in range(2,n+1):
a,b=b,a+b
return b
2、旋转字符串
关键:旋转后前半部分和旋转前后半部分相同。
class Solution:
def rotateString(self, s: str, goal: str) -> bool:
if len(s)!=len(goal):
return False
if s==goal:
return True
l=len(s)
for i in range(l):
if s[i:]==goal[:l-i]:
return True
if s[i] not in goal: #有不相同的字符直接返回False
return False
return False
#方法二:将旋转字符串加上自身,如果goal在旋转字符串中那么就可以,绝了!
class Solution:
def rotateString(self, s: str, goal: str) -> bool:
return len(s)==len(goal) and goal in s+s
3、扑克牌中的顺子
关键:不能重复+除0+最大数-最小数<5
class Solution:
def isStraight(self, nums: List[int]) -> bool:
r=set()
max_v=0
min_v=14
for i in nums:
if i==0:
continue
if i in r:
return False
r.add(i)
max_v=max(i,max_v)
min_v=min(i,min_v)
return max_v-min_v<5
标签:return,goal,训练,真题,max,min,Zoom,len,False 来源: https://www.cnblogs.com/feiyuyu/p/16514811.html