当前位置: 首页 > news >正文

Leetcode -1

Leetcode

  • Leetcode -521.最长特殊序列
  • Leetcode - 541.反转字符串Ⅱ

Leetcode -521.最长特殊序列

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

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

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

例如,“abc” 是 “aebdc” 的子序列,因为删除 “aebdc” 中的字符 e 和 d 可以得到 “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 的子序列。

思路是在两个字符串不相同的情况下,返回长度长的那个字符串的长度;相同就返回 -1;

		int findLUSlength(char* a, char* b){//由题意,在两个字符串不相同的情况下,返回长度长的那个字符串的长度int lenA = strlen(a), lenB = strlen(b);int max = lenA > lenB ? lenA : lenB;//如果相同,返回-1if (!strcmp(a, b))return -1;return max;}

Leetcode - 541.反转字符串Ⅱ

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

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

示例 1:
输入:s = “abcdefg”, k = 2
输出:“bacdfeg”

示例 2:
输入:s = “abcd”, k = 2
输出:“bacd”

思路是遍历字符串,每次走 2k 步,然后反转前 k 个字符,利用 i + k 找到第 k + 1 个,在反转前 k 个字符之前,判断 i + k 是否大于字符串的长度,比较它们的长度,取较小值;

		//交换字符void swap(char* a, char* b){char tmp = *a;*a = *b;*b = tmp;}//更新迭代字符//注意 right 传进来的时候是 i + k 或者字符串的长度,在交换字符之前需要先自减//假设传进来的是 i + k ,i + k - 1 才是前 k 个;void reverse(char* left, char* right){while (left < right){swap(left++, --right);}}//min函数取较小的值int min(int a, int b){return a < b ? a : b;}char* reverseStr(char* s, int k){/* 从头开始遍历,i每次走 2k 步,然后反转前k个;在反转前 k 个字符之前,判断 i + k 是否大于字符串的长度,取它们的较小值;注意要用传址的形式,因为需要改变到字符串中的字符 */for (int i = 0; i < strlen(s); i += 2 * k){reverse(&s[i], &s[min(i + k, strlen(s))]);}return s;}
http://www.lryc.cn/news/233737.html

相关文章:

  • 系列四、JVM的内存结构【本地接口(Native Interface)】
  • 大型语言模型中的幻觉研究综述:原理、分类、挑战和未决问题11.15+11.16+11.17
  • redis悲观锁和乐观锁
  • 前端项目练习,首页退出登录功能,清除token --点击事件 quitFn
  • nodejs+vue杰和牧场管理系统的设计与实现-微信小程序-安卓-python-PHP-计算机毕业设计
  • 基于STM32的蓝牙低功耗(BLE)通信方案设计与实现
  • qt 重载信号,使用““方式进行connect()调用解决方案
  • 阿里云+宝塔部署项目(Java+React)
  • Linux_系统信息_uname查看内核版本、内核建立时间、处理器类型、顺便得到操作系统位数等
  • screen中conda激活环境后登录jupyter notebook导入包提示找不到,但是在命令行中就可以导入包
  • 基于SSM的中小型企业财务管理设计与实现
  • 工厂模式之简单工厂模式(常用)
  • Kafka入门教程与详解(一)
  • GoFrame学习随便记1
  • 最新自动定位版本付费进群系统源码
  • freeswitch的一个性能问题
  • 各机构如何加强网络渗透、“渗透”防御
  • Docker命令 常用中间件运维部署,方便构建自己服务
  • Android——gradle构建知识片-散装版
  • 3.3 Windows驱动开发:内核MDL读写进程内存
  • 开源与闭源:驾驭大模型未来的关键决断
  • 面向对象成员之属性
  • 第六十二周周报
  • 【机器学习】 特征工程:特征预处理,归一化、标准化、处理缺失值
  • 【深度学习实验】网络优化与正则化(七):超参数优化方法——网格搜索、随机搜索、贝叶斯优化、动态资源分配、神经架构搜索
  • 简单漂亮的首页
  • SSM项目初始化流程与操作概念解释-SpringBoot简化版
  • Angular 路由无缝导航的实现与应用(六)
  • quickapp_快应用_tabBar
  • PCL_点云分割_基于法线微分分割