力扣刷题记录——521. 最长特殊序列 Ⅰ、541. 反转字符串 II、557. 反转字符串中的单词 III

news2024/11/25 18:50:28

本专栏主要记录力扣的刷题记录,备战蓝桥杯,供复盘和优化算法使用,也希望给大家带来帮助,博主是算法小白,希望各位大佬不要见笑,今天要分享的是——《521. 最长特殊序列 Ⅰ、541. 反转字符串 II、557. 反转字符串中的单词 III》。

目录

521. 最长特殊序列 Ⅰ

        题目描述

        解题思路

        解题代码

541. 反转字符串 II

        题目描述

        解题思路

        解题代码

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

        题目描述

        解题思路

        解题代码


521. 最长特殊序列 Ⅰ

题目描述

给你两个字符串 a 和 b,请返回 这两个字符串中 最长的特殊序列  的长度。如果不存在,则返回 -1 。

「最长特殊序列」 定义如下:该序列为 某字符串独有的最长子序列(即不能是其他字符串的子序列) 。

字符串 s 的子序列是在从 s 中删除任意数量的字符后可以获得的字符串。

  • 例如,"abc" 是 "aebdc" 的子序列,因为删除 "aebdc" 中斜体加粗的字符可以得到 "abc" 。 "aebdc" 的子序列还包括 "aebdc" 、 "aeb" 和 "" (空字符串)。

示例 1:

输入: a = "aba", b = "cdc"
输出: 3
解释: 最长特殊序列可为 "aba" (或 "cdc"),两者均为自身的子序列且不是对方的子序列。

示例 2:

输入:a = "aaa", b = "bbb"
输出:3
解释: 最长特殊序列是 "aaa" 和 "bbb" 。

示例 3:

输入:a = "aaa", b = "aaa"
输出:-1
解释: 字符串 a 的每个子序列也是字符串 b 的每个子序列。同样,字符串 b 的每个子序列也是字符串 a 的子序列。

解题思路

如果两字符串不相同,首先判断那个是长字符串哪个是短字符串,最长特定序列一定在长的字符串中,只要遍历长的字符串,如果在短的里面存在,replase掉就可以,最终返回最长的字符串。如果这种方法不行,可以再尝试一下指针的方法

解题代码

def findLUSlength(a: str, b: str):
    if a==b:
        return -1
    if len(a)<= len(b):
        min_str = a
        max_str = b

    else:
        min_str = b
        max_str = a
    for i in max_str:
        if i in min_str:
            max_str.replace(i,"")
            min_str.replace(i,"")
    return len(max_str)

顺利通关,击败率还挺高!

541. 反转字符串 II

题目描述

给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。

  • 如果剩余字符少于 k 个,则将剩余字符全部反转。
  • 如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。

示例 1:

输入:s = "abcdefg", k = 2
输出:"bacdfeg"

示例 2:

输入:s = "abcd", k = 2
输出:"bacd"

解题思路

首先通过while循环将列表分割,再通过遍历列表,根据i的长度进行不同的操作,注意在刚开始时要判断s和k的关系,最终返回一个result。

解题代码

def reverseStr(s: str, k: int):
    print(len(s))
    if len(s) < k:
        return s
    begin = 0
    tem_list = []
    result = ""
    while begin < len(s):
        tem_list.append(s[begin:begin+2*k])
        begin += 2*k
    for i in tem_list:
        if len(i) < k:
            i = i[::-1]
            result += i
        elif len(i) == 2*k:
            first = i[:k]
            first = first[::-1]
            result += "".join(first)
            second = i[k:2*k]
            result += "".join(second)
        else:
            first = i[:k]
            first = first[::-1]
            result += "".join(first)
            second = i[k:]
            result += "".join(second)
    return result

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

题目描述

给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。

示例 1:

输入:s = "Let's take LeetCode contest"
输出:"s'teL ekat edoCteeL tsetnoc"

示例 2:

输入: s = "God Ding"
输出:"doG gniD"

解题思路

这题还是很基础的,用split切割,然后用字符串 切片倒序就可以,注意在添加末尾加上一个空格,然后最后的结果再去掉末尾的空格,返回result。

解题代码

def reverseWords(s: str):
    str_list = [i for i in s.split(" ")]
    result = ""
    for i in str_list:
        i = i[::-1]
        result += i +" "
    result = result[:-1:]

    return result

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/167563.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PhotoZoom Pro8全新版本功能介绍及系统要求

PhotoZoom 2023&#xff08;PhotoZoom 8&#xff09;全新版本震撼来袭。 一款划时代的、技术上产生革命性影响的数码图片放大工具。 我们获取图片的方法&#xff0c;一般是从度娘图片和各个图库里找素材。但一般网上搜索到的很多图片像素都非常小&#xff0c;普通方法放大就像打…

修改配置文件的定时任务

1.问题背景 下发文件给下游系统设置的是定时任务&#xff0c;原本是每天的18&#xff1a;08定时发送&#xff0c;突然下游说要立马发送&#xff0c;于是只能去修改定时任务。 2.修改操作 查看权限—修改权限—备份–修改—重启 查看权限 进入配置文件目录&#xff1a;cd /…

分享77个HTMLCSS源码,总有一款适合您

HTML&CSS源码 分享77个HTML&CSS源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c;大家下载后可以看到。 源码下载链接&#xff1a;https://pan.baidu.com/s/1QRSokzVy2ZAaSD6VR…

DataGear 4.4.0 发布,数据可视化分析平台

DataGear 4.4.0 发布&#xff0c;带来看板新特性&#xff0c;具体更新内容如下&#xff1a; 新增&#xff1a;看板新增dg-chart-manual-render属性&#xff0c;用于控制是否手动渲染图表&#xff1b;新增&#xff1a;看板dg-dashboard-code属性新增"instance"值&…

Linux——线程概念及私有数据和优缺点

目录 一.什么是线程 二.线程私有的数据 三.线程的优点 四.线程的缺点 五.线程与进程对比 一.什么是线程 线程是在进程内部运行&#xff0c;一个进程可以有多个线程。 打个比方&#xff0c;假如人是一个进程&#xff0c;那么走路、思考、吃饭、说话作为不同的线程。一个进…

《Linux Shell脚本攻略》学习笔记-第十章

10.1 Linux的生态系统由网络、硬件、负责分配资源的操作系统内核、接口模块、系统实用工具以及用户程序所组成的。 10.2 运行在计算机中的多个进程都被分配了一个被称为进程ID的唯一标识数字。进程属性包括拥有该进程的用户、进程使用的内存数量、进程占用的CPU时间。 ps命令默…

拉伯证券|年内第二大解禁周来袭

Wind数据显现&#xff0c;除掉新上市公司&#xff0c;本周A股共有54家公司限售股解禁&#xff0c;解禁数量270.57亿股&#xff0c;以最新收盘价计算&#xff08;下同&#xff09;&#xff0c;解禁市值1752.90亿元&#xff0c;为年内第二大解禁周。 本周解禁市值超越10亿元的公司…

YOLOv8代码上线,官方宣布将发布论文,附精度速度初探和对比总结

【YOLOv8 注意事项】 1. YOLOv8 的官方仓库和代码已上线&#xff0c;文档教程网址也刚刚更新。 2. YOLOv8 代码集成在 ultralytics 项目中&#xff0c;目前看不会再单独创建叫做 YOLOv8 的项目。 3. YOLOv8 即将有论文了&#xff01;要知道 YOLOv5 自从 2020 年发布以来&…

阿里云服务器安装图形界面

为了自动化流程安装图形界面&#xff0c;我的服务器是Centos7 1、yum安装gnome图形界面 yum groupinstall “GNOME Desktop” -y 2、安装远程桌面服务端 yum -y install tigervnc-server -y 3、启动远程桌面服务端(将桌面服务绑定到5903端口) vncserver :3 4、阿里控制台放开59…

SpringBoot+VUE前后端分离项目学习笔记 - 【23 权限菜单 续】

BUG1 : 路由跳转问题 访问错误路由&#xff1a; 已登录用户返回404&#xff0c;未登录用户返回登录页面 Route/index.js 路由守卫增加判断 router.beforeEach((to, from, next) > {localStorage.setItem("currentPathName", to.name) // 设置当前的路由名称s…

【墙角数枝梅,凌寒独自开】代码改变未来

墙角数枝梅&#xff0c;凌寒独自开 “墙角数枝梅&#xff0c;凌寒独自开。” 出自王安石的《梅花》 诗句是集语言中的精华&#xff0c;浓缩为七言、五言和四言等&#xff0c;寥寥几句道尽人生酸甜苦辣&#xff0c;儿女情长。 而我更愿把现代的程序员称作诗人&#xff0c;语言是…

ESP32设备驱动-TCS34725颜色传感器驱动

TCS34725颜色传感器驱动 文章目录 TCS34725颜色传感器驱动1、TCS34725介绍2、硬件准备3、软件准备4、驱动实现1、TCS34725介绍 TCS3472 器件提供红色、绿色、蓝色 (RGB) 和清晰光感应值的数字返回。 集成在芯片上并定位于颜色传感光电二极管的 IR 阻挡滤光片可最大限度地减少入…

并发场景使用SimpleDateFormat异常问题和解决

SimpleDateFormat类主要是负责日期的格式化与转换操作&#xff0c;因为它不是线程安全的&#xff0c;所以使用SimpleDateFormat时&#xff0c;务必确保同一个SimpleDateFormat对象不要与其他线程共享&#xff0c;否则并发情况下会出现问题 目录异常示例解决方案1&#xff1a;创…

Camera | 2.MIPI、CSI基础

瑞芯微专栏 上一篇我们讲解了camera的一些基础概念和知识。 我们说了&#xff0c;现在的手机由于高分辨率的要求&#xff0c;现在基本上都是基于MIPI、CSI协议来实现的&#xff0c; 本篇讲解MIPI、CSI的一些基础知识。 摄像头常用术语 下面这些术语是camera驱动中经常用到的…

9.6 容器适配器

文章目录定义一个适配器stack队列适配器queuepriority_queue 优先队列适配器是标准库的一个通用概念&#xff0c;容器、迭代器和函数等都有适配器。适配器是一种机制&#xff0c;接受一种已有容器类型。标准库有三个顺序容器适配器&#xff1a;stack&#xff0c;queue和priorit…

Elasticsearch:关于在 Python 中使用 Elasticsearch 你需要知道的一切 - 8.x

在本文中&#xff0c;我们将讨论如何在 Python 中使用 Elasticsearch。 如果你还不了解 Elasticsearch&#xff0c;可以阅读这篇文章 “Elasticsearch 简介” 进行快速介绍。在我之前的文章 “Elasticsearch&#xff1a;使用最新的 Python client 8.0 来创建索引并搜索”&#…

Pytorch自定义数据集模型训练流程

文章目录Pytorch模型自定义数据集训练流程1、任务描述2、导入各种需要用到的包3、分割数据集4、将数据转成pytorch标准的DataLoader输入格式5、导入预训练模型&#xff0c;并修改分类层6、开始模型训练7、利用训好的模型做预测Pytorch模型自定义数据集训练流程 我们以kaggle竞…

响应式流的核心机制——背压机制

一、响应式流是什么&#xff1f; Reactive Streams 是 2013 年底由 Netflix、Lightbend 和 Pivotal&#xff08;Spring 背后的公司&#xff09;的工程师发起的一项计划&#xff0c;响应式流旨在为无阻塞异步流处理提供一个标准。它旨在解决处理元素流的问题——如何将元素流从…

【BP靶场portswigger-客户端14】点击劫持-5个实验(全)

前言&#xff1a; 介绍&#xff1a; 博主&#xff1a;网络安全领域狂热爱好者&#xff08;承诺在CSDN永久无偿分享文章&#xff09;。 殊荣&#xff1a;CSDN网络安全领域优质创作者&#xff0c;2022年双十一业务安全保卫战-某厂第一名&#xff0c;某厂特邀数字业务安全研究员&…

Fastdfs分布式文件系统原理浅析

文章目录1、fastdfs文件系统原理简述2、storage server状态2.1 组内新增加一台storage server A时&#xff0c;由系统自动完成已有数据同步&#xff0c;处理逻辑如下&#xff1a;第一步&#xff1a;第二步&#xff1a;第三步&#xff1a;第四步&#xff1a;3、同步时间管理4、B…