首页 技术 正文
技术 2022年11月19日
0 收藏 878 点赞 4,415 浏览 957 个字

这是悦乐书的第252次更新,第265篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第119题(顺位题号是521)。给定一组两个字符串,您需要找到这组两个字符串中最长的不同子序列。最长的不同子序列被定义为这些字符串之一的最长子序列,并且此子序列不应该是其他字符串的任何子序列。

子序列是可以通过删除一些字符而不改变其余元素的顺序从一个序列导出的序列。任何字符串都是其自身的子序列,空字符串是任何字符串的子序列。输入将是两个字符串,输出需要是最长的不同子序列的长度。如果最长的不同子序列不存在,则返回-1。例如:

输入:“aba”,“cdc”

输出:3

说明:最长的不同子序列是“aba”(或“cdc”),因为“aba”是“aba”的子序列,但不是另外一个字符串的子序列。

注意:

  • 两根字符串的长度都不会超过100。

  • 字符串由a~z的字母组成。

本次解题使用的开发工具是eclipse,jdk使用的版本是1.8,环境是win7 64位系统,使用Java语言编写和测试。

02 第一种解法

题目的意思是如果两字符串不存在最长不同子串,也就表明两字符串相等,直接返回-1即可。每个字符串都有一个最长不同子串就是自身,那么要找两个字符串的最长不同子串,也就是看谁的字符串长度更长了,字符串长度更长的那个字符串本身就是最长不同子串。

public int findLUSlength(String a, String b) {
if (a.equals(b)) {
return -1;
}
return a.length() > b.length() ? a.length() : b.length();
}

03 第二种解法

第一种解法的最后一步,也可以使用Math的max方法来写。

public int findLUSlength2(String a, String b) {
if (a.equals(b)) {
return -1;
}
return Math.max(a.length(), b.length());
}

04 小结

算法专题目前已日更超过三个月,算法题文章119+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,077
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,552
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,400
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,176
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,813
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,894