其他分享
首页 > 其他分享> > 企业真题训练-Zoom

企业真题训练-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