资讯专栏INFORMATION COLUMN

leetcode刷题笔记(2)(python)

Guakin_Huang / 2631人阅读

摘要:思路先用将字符串分割,再遍历,将字符串内每个单词进行翻转代码题意给定一个字符串,将字符串按照翻转,不翻转的规则进行处理。思路先将字符串分段,然后再根据段落进行处理最后将字符串输出。


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://www.ucloud.cn/yun/40888.html

相关文章

  • leetcode刷题笔记(1)(python

    摘要:最近时间准备面试,开始在上刷题了。思路将两个数用转换为二进制需要去除前面的,因为位数不同所以需要在前面补充一定位数的,然后将两个字符串遍历就可以直接得到汉明距离代码 最近时间准备面试,开始在leetcode上刷题了。于是在segmentfault上写点东西来记录下。可能会有各种弱智情况,望指出。 Array Partition I题意:这个题目看原题实在没有看懂,在网上找的翻译,大致...

    layman 评论0 收藏0
  • leetcode刷题笔记(3)(python)

    摘要:题意给出一串二进制数组,求数组中最长的连续的个数思路遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为的状况。代码题意给出一个,从里面获取两个数。 485 Max Consecutive Ones题意:给出一串二进制数组,求数组中最长的连续1的个数思路:遍历数组判断,然后将值添加到长度保存数组中,取保存数组最大值。本题要考虑输入的数组为[0],[1]的...

    susheng 评论0 收藏0
  • 【算法日积月累】0-写在前面的话

    摘要:现在发出来的版本,我重新使用了语言实现。其实我之前介绍的老师课程也大量参考和使用算法这本书上的思路和例题。看这本书主要是让我觉得算法可以以比较轻松的方式入门。剑指这本书主要用于准备算法面试,在网络上备受好评。 我是一个半路出家的程序员,在我刚开始从事编码工作的头几年,我没有接触过算法和数据结构,觉得它们是只会在我找工作的时候用得到的知识。尽管有很多人跟我说过算法和数据结构无比重要,我也...

    flybywind 评论0 收藏0
  • leetcode刷题笔记

    摘要:技能点中结构知识点声明语句添加内容鉴定存在本例是把作为找到下标根据返回下标返回数组最终代码建立在哈希表中遍历每个元素,找到可能与之匹配成的下标 问题: 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的两个下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 思路 首先遍历一次整数数组,将数组下标和值建立哈希表,再从...

    stefanieliang 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<