首页 > 其他分享 >leetcode-521-easy

leetcode-521-easy

时间:2023-01-08 19:57:09浏览次数:41  
标签:return string uncommon subsequence 521 easy leetcode aLength longest

Longest Uncommon Subsequence I

Given two strings a and b, return the length of the longest uncommon subsequence between a and b. If the longest uncommon subsequence does not exist, return -1.

An uncommon subsequence between two strings is a string that is a subsequence of one but not the other.

A subsequence of a string s is a string that can be obtained after deleting any number of characters from s.

For example, "abc" is a subsequence of "aebdc" because you can delete the underlined characters in "aebdc" to get "abc". Other subsequences of "aebdc" include "aebdc", "aeb", and "" (empty string).
Example 1:

Input: a = "aba", b = "cdc"
Output: 3
Explanation: One longest uncommon subsequence is "aba" because "aba" is a subsequence of "aba" but not "cdc".
Note that "cdc" is also a longest uncommon subsequence.
Example 2:

Input: a = "aaa", b = "bbb"
Output: 3
Explanation: The longest uncommon subsequences are "aaa" and "bbb".
Example 3:

Input: a = "aaa", b = "aaa"
Output: -1
Explanation: Every subsequence of string a is also a subsequence of string b. Similarly, every subsequence of string b is also a subsequence of string a.
Constraints:

1 <= a.length, b.length <= 100
a and b consist of lower-case English letters.

思路一:初看题以为比较难解,不过解题过程中把一个个情况排除后,发现是比较简单的题。完全分配,a 和 b 只可能出现两种情况,

  • 等长
  • 不等长
    对于等长的情况,继续完全分类
  • 出现的字符一致
  • 出现的字符不一致
    对上面的分类情况进行判断即可
    public int findLUSlength(String a, String b) {
        int aLength = a.length();
        int bLength = b.length();
        if (aLength != bLength) {
            return Math.max(aLength, bLength);
        }

        Set<Character> set = new HashSet<>();
        for (int i = 0; i < aLength; i++) {
            set.add(a.charAt(i));
        }

        for (int i = 0; i < bLength; i++) {
            if (!set.contains(b.charAt(i))) {
                return aLength;
            }
        }

        if (a.equals(b)) {
            return -1;
        } else {
            return aLength;
        }
    }

思路二:看了题解,发现不用判断出现的字符是否一致,直接看字符串是否一致就行

标签:return,string,uncommon,subsequence,521,easy,leetcode,aLength,longest
From: https://www.cnblogs.com/iyiluo/p/17035194.html

相关文章

  • leetcode-551-easy
    StudentAttendanceRecordIYouaregivenastringsrepresentinganattendancerecordforastudentwhereeachcharactersignifieswhetherthestudentwasab......
  • leetcode-485-easy
    MaxConsecutiveOnesGivenabinaryarraynums,returnthemaximumnumberofconsecutive1'sinthearray.Example1:Input:nums=[1,1,0,1,1,1]Output:3E......
  • leetcode-434-easy
    NumberofSegmentsinaStringGivenastrings,returnthenumberofsegmentsinthestring.Asegmentisdefinedtobeacontiguoussequenceofnon-spacech......
  • 【LeetCode数组#4】长度最小的子数组
    长度最小的子数组力扣题目链接(opensnewwindow)给定一个含有n个正整数的数组和一个正整数s,找出该数组中满足其和≥s的长度最小的连续子数组,并返回其长度。如......
  • [leetcode每日一题]1.8
    ​​2185.统计包含给定前缀的字符串​​难度简单28给你一个字符串数组 ​​words​​ 和一个字符串 ​​pref​​ 。返回 ​​words​​ 中以 ​​pref​​ 作为 ......
  • 【优先队列】LeetCode 23. 合并K个升序链表
    题目链接23.合并K个升序链表思路把全部结点放入优先队列中,然后再依次组成新链表代码classSolution{publicListNodemergeKLists(ListNode[]lists){......
  • LeetCode 236_二叉树的最近公共祖先
    LeetCode236:二叉树的最近公共祖先题目给定一个二叉树,找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树T的两个节点p、q,最近......
  • LeetCode 887. 鸡蛋掉落-题解分析
    题目来源887.鸡蛋掉落题目详情给你k枚相同的鸡蛋,并可以使用一栋从第1层到第n层共有n层楼的建筑。已知存在楼层f,满足 0<=f<=n,任何从高于f的楼层落......
  • 【优先队列】LeetCode 347. 前 K 个高频元素
    题目链接347.前K个高频元素思路前k大模板题代码classSolution{publicint[]topKFrequent(int[]nums,intk){PriorityQueue<Map.Entry<Integer,......
  • 【优先队列】LeetCode 973. 最接近原点的 K 个点
    题目链接973.最接近原点的K个点思路使用优先队列处理前k大问题代码classSolution{classNode{intx;inty;doubledistance;......