[Leetcode] 每日两题 306 824 -day67

306. 累加数

在这里插入图片描述

深度优先 +剪枝, 这道题 没发现什么诀窍,就是对第一个数字和第二个数字为几位数分别遍历,然后判断后续序列是否满足累加条件

class Solution:
    def isAdditiveNumber(self, num: str) -> bool:
        
        for fir in range(1,len(num)//2+1):
            for sed in range(1,len(num)//2+1):
               
                a = int(num[0:fir])
                b = int(num[fir:fir+sed])
                if len(str(a)) !=fir or len(str(b)) !=sed :
                    continue 
                now = fir+sed
                while 1:
                    b = a+b
                    a = b-a
                    if now+len(str(b)) >len(num):
                        break
                    if int(num[now:now+len(str(b))]) == b:
                        now = now+len(str(b))
                    else :
                        break
                    if now == len(num):
                        return True
        return False
824. 山羊拉丁文

在这里插入图片描述

首先以空格为间隔取出单词, 然后对于单词首字母进行判定,分别处理元音和辅音的情况

class Solution:
    def toGoatLatin(self, sentence: str) -> str:
        res =""
        a = 'a '
        for word in sentence.split(' '):
            if word[0] in ['a','e','i','o','u','A','E','I','O','U']:
                res +=word
            else:
                res +=word[1:]
                res +=word[0] 
            res +='ma'
            res += a 
            a ='a'+a 
        return res[:len(res)-1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值