力扣521(java&python)-最长特殊序列Ⅰ(简单)

2022/6/11 1:22:45

本文主要是介绍力扣521(java&python)-最长特殊序列Ⅰ(简单),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

题目:

给你两个字符串 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 的子序列。
 

提示:

1 <= a.length, b.length <= 100
a 和 b 由小写英文字母组成

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/longest-uncommon-subsequence-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:

脑筋急转弯题

1.如果两个字符串长度不相等,选择最长的那个字符串为最长子序列,必不会成为对方的子序列;

2.如果两个字符串长度相等

  • 内容不等时,可以任意选择一个字符串作为最长子序列;
  • 内容相等时,则任意一个子序列都会出现在两个字符串中,则没有最长子序列,返回 -1。

java代码:

 

 python3代码:

 

小知识:

equals() 和 “==” 的区别:

==:运算符

  1. 可以使用在基本数据类型变量和引用数据类型的变量中;
  2. 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(不一定类型要相同);
  3. 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同。

equals():

  1.  是一个方法,而非运算符;
  2. 只能适用引用数据类型  
  3. Object中equals()的定义:
 public boolean equals(Object obj){
       return (this==obj);
 }

 



这篇关于力扣521(java&python)-最长特殊序列Ⅰ(简单)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程