leetcode刷题笔记(2)(python)

344 Reverse String
题意:给出一个字符串对字符串进行翻转(reverse)
思路:直接使用切片函数进行翻转(网上看到的,具体怎么使用有点迷)[::-1]
代码:`class Solution(object):

def reverseString(self, s):
    return s[::-1]`

557 Reverse Words in a String III
题意,给出一句话,将这句话里面每个单词的字母顺序改变,但是单词顺序不变输出。
思路:先用split()将字符串分割,再遍历,将字符串内每个单词进行翻转
代码:`class Solution(object):

def reverseWords(self, s):
    l=[]
    s=s.split()
    for i in s:
        l.append(i[::-1])
    return " ".join(l)`

541 Reverse String II
题意:给定一个字符串,将字符串按照nk翻转,2n*k不翻转的规则进行处理。
思路:先将字符串分段,然后再根据段落进行处理最后将字符串输出。
代码:`class Solution(object):

def reverseStr(self, s, k):
    al=len(s)//k+1
    s=list(s)
    last=[]
    returnl=[]
    for i in range(1,al+1):
        if i<=al-1:
            if i%2==1:
                last.append(s[(i-1)*k:i*k][::-1])
            elif i%2==0:
                last.append(s[(i-1)*k:i*k])
        elif i>al-1:
            if i%2==1:
                last.append(s[(i-1)*k:][::-1])
            elif i%2==0:
                last.append(s[(i-1)*k:])
    for j in last:
        for k in j:
            returnl.append(k)
    return "".join(returnl)`

258 Add Digits
题意:给定一个多位整数,将整数每位数字重复相加直到结果为个位数
思路:给定一个死循环,在里面不断求和即可。
代码:`class Solution(object):

def addDigits(self, num):
    while 1:
        if num<10:
            return num
        if num>=10:
            result=0
            while num!=0:
                result += num%10
                num//=10
            num=result
                `
                
                

202 Happy Number
题意:给定一个数,使这个数各位平方相加,如果最后的值是1则返回true,如果陷入死循环则返回false
思路:先给定一个死循环,然后先判断是否是1再判断是否是之前出现过的数,然后计算
代码:class Solution(object):

def isHappy(self, n):
    numlist=[]
    result=0
    while 1:
        if n==1:
            return 1==1
        for i in numlist:
            if n==i:
                return 1==2
        numlist.append(n)
        while n!=0:
            result+=(n%10)**2
            n//=10
        n=result
        result=0

263 Ugly Number
题意:给定一个数,如果这个数不被2 3 5且不为1则这个数为丑陋数(ugly number)
思路:死循环分别除1,先检测,如果数为0返回false
代码:
class Solution(object):

def isUgly(self, num):
    while 1:
        if num==0:
            return 1==2
        if num%2==0:
            num/=2
        elif num%3==0:
            num/=3
        elif num%5==0:
            num/=5
        elif num==1:
            return 1==1
        else:
            return 1==2
    
    原文作者:王鑫
    原文地址: https://segmentfault.com/a/1190000011359683
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞