ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-06-10 10:37:40  阅读:132  来源: 互联网

标签:java python 数据类型 equals 力扣 序列 字符串 aaa aebdc


题目:

给你两个字符串 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);
 }

 

标签:java,python,数据类型,equals,力扣,序列,字符串,aaa,aebdc
来源: https://www.cnblogs.com/lmy569/p/16362266.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有