力扣——算法入门计划第四天

简介: 力扣(LeetCode)是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷,力扣为全球程序员提供了专业的IT技术职业化提升平台,有效帮助程序员实现快速进步和长期成长。 此外,力扣(LeetCode)致力于解决程序员技术评估、培训、职业匹配的痛点,逐步引领互联网技术求职和招聘迈向专业化。

 目录

🍕题目

🍔方法一:暴力

🍟代码

🍔方法二:位运算

🍟代码

🍔方法三:双指针

🍟代码

🍕题目

🍔方法一:

🍟 代码

🍔方法二:

🍟代码


🍕题目

344. 反转字符串

image.png

🍔方法一:暴力

python内置反转列表的函数 reserve

🍟代码

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        s = s.reverse()

image.gif

image.png

🍔方法二:位运算

这是力扣一位老哥的想法,其实就是两两相互替换,开头元素和末尾替换。

🍟代码

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        h=len(s)//2
        for i in range(h):
            s[i],s[~i]=s[~i],s[i]

image.gif

image.png

🍔方法三:双指针

左右两指针交换数据向中间缩进即可

🍟代码

class Solution:
    def reverseString(self, s: List[str]) -> None:
        """
        Do not return anything, modify s in-place instead.
        """
        left,right = 0,len(s)-1
        while left < right:
            s[left],s[right] = s[right],s[left]
            left += 1
            right -= 1

image.gif

image.png

🍕题目

557. 反转字符串中的单词 III

image.png

🍔方法一:

最简单的思路就是将字符串分割成单词列表 然后把每个单词反转切片

🍟 代码

class Solution(object):
    def reverseWords(self, s):
        return " ".join(word[::-1] for word in s.split(" "))

image.gif

image.png

🍔方法二:

利用两次切片,不需遍历

先反转单词列表 再反转字符串

以字符串 “I love heart" 为例:

1.s.split(" ") 将字符串分割成单词列表:

 

['I', 'love', ' heart']
image.gif

2.s.split(" ")[::-1] 将单词列表反转:

[ 'heart', 'love', 'I']
image.gif

3." ".join(s.split(" ")[::-1]) 将单词列表转换为字符串,以空格分隔:

"heart love I"
image.gif

4." ".join(s.split(" ")[::-1])[::-1] 将字符串反转:

”I evol traeh“
image.gif

🍟代码

class Solution(object):
    def reverseWords(self, s):
        return " ".join(s.split(" ")[::-1])[::-1]

image.gif

image.png

相关文章
|
3月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:理解神经网络与反向传播算法
【9月更文挑战第20天】本文将深入浅出地介绍深度学习中的基石—神经网络,以及背后的魔法—反向传播算法。我们将通过直观的例子和简单的数学公式,带你领略这一技术的魅力。无论你是编程新手,还是有一定基础的开发者,这篇文章都将为你打开深度学习的大门,让你对神经网络的工作原理有一个清晰的认识。
|
2月前
|
算法
Leetcode 初级算法 --- 数组篇
Leetcode 初级算法 --- 数组篇
39 0
|
18天前
|
存储 算法 Java
leetcode算法题-有效的括号(简单)
【11月更文挑战第5天】本文介绍了 LeetCode 上“有效的括号”这道题的解法。题目要求判断一个只包含括号字符的字符串是否有效。有效字符串需满足左括号必须用相同类型的右括号闭合,并且左括号必须以正确的顺序闭合。解题思路是使用栈数据结构,遍历字符串时将左括号压入栈中,遇到右括号时检查栈顶元素是否匹配。最后根据栈是否为空来判断字符串中的括号是否有效。示例代码包括 Python 和 Java 版本。
|
2月前
|
算法
【链表】算法题(二) ----- 力扣/牛客
【链表】算法题(二) ----- 力扣/牛客
|
2月前
|
机器学习/深度学习 算法
机器学习入门(三):K近邻算法原理 | KNN算法原理
机器学习入门(三):K近邻算法原理 | KNN算法原理
|
2月前
|
机器学习/深度学习 算法 大数据
机器学习入门:梯度下降算法(下)
机器学习入门:梯度下降算法(下)
|
2月前
|
机器学习/深度学习 算法 API
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
机器学习入门(五):KNN概述 | K 近邻算法 API,K值选择问题
|
2月前
|
算法
【链表】算法题(一) ----- 力扣 / 牛客
【链表】算法题(一) ----- 力扣 / 牛客
|
2月前
|
算法
【顺序表】算法题 --- 力扣
【顺序表】算法题 --- 力扣
|
2月前
|
机器学习/深度学习 算法
机器学习入门:梯度下降算法(上)
机器学习入门:梯度下降算法(上)
下一篇
无影云桌面