• LeetCode 1763. Longest Nice Substring


    LeetCode 1763. Longest Nice Substring (最长的美好子字符串)

    题目

    链接

    https://leetcode-cn.com/problems/longest-nice-substring/

    问题描述

    当一个字符串 s 包含的每一种字母的大写和小写形式 同时 出现在 s 中,就称这个字符串 s 是 美好 字符串。比方说,"abABB" 是美好字符串,因为 'A' 和 'a' 同时出现了,且 'B' 和 'b' 也同时出现了。然而,"abA" 不是美好字符串因为 'b' 出现了,而 'B' 没有出现。

    给你一个字符串 s ,请你返回 s 最长的 美好子字符串 。如果有多个答案,请你返回 最早 出现的一个。如果不存在美好子字符串,请你返回一个空字符串。

    示例

    输入:s = "YazaAay"
    输出:"aAa"
    解释:"aAa" 是一个美好字符串,因为这个子串中仅含一种字母,其小写形式 'a' 和大写形式 'A' 也同时出现了。
    "aAa" 是最长的美好子字符串。

    提示

    1 <= s.length <= 100
    s 只包含大写和小写英文字母

    思路

    比较繁琐的一道题,但是暴力能过。

    先通过二重循环,找到可能的字符串,之后对字符串进行check,符合条件的与ans比较,记录合适的答案。这里需要对子串长度限制,必须要大于ans长度才需要拿来测试。

    check中用hashset存储,set是所有字母,包括大小写,setlower是小写字母,如果全部字母数量是小写字母数量两倍,就代表是美好字符串。

    复杂度分析

    时间复杂度 O(n^3)
    空间复杂度 O(n)
    

    代码

    Java

        public String longestNiceSubstring(String s) {
            int n = s.length();
            String ans = "";
            for (int i = 0; i < n; i++) {
                for (int j = i + 1; j < n; j++) {
                    if ((j - i + 1 > ans.length()) && check(s.substring(i, j + 1))) {
                        ans = s.substring(i, j + 1);
                    }
                }
            }
            return ans;
        }
    
        boolean check(String s) {
            Set<Character> set = new HashSet<>();
            Set<Character> setlower = new HashSet<>();
            for (char c : s.toCharArray()) {
                set.add(c);
                char a = Character.toLowerCase(c);
                setlower.add(a);
            }
    
            if (set.size() == setlower.size() * 2) {
                return true;
            }
            return false;
        }
    
  • 相关阅读:
    php Date()函数输出中文年月日时分秒
    jQuery动态添加删除与添加表行代码
    sql随机查询数据语句(NewID(),Rnd,Rand(),random())
    asp.net 逻辑操作符与(&&),或(||),非(!)
    php static 变量的例子
    asp.net C# int 类型在32/64位环境下取值范围无变化
    js保留小数点后N位的方法介绍
    [Java] LinkedHashMap 源码简要分析
    [Java] HashMap 源码简要分析
    [Java] Hashtable 源码简要分析
  • 原文地址:https://www.cnblogs.com/blogxjc/p/15860435.html
Copyright © 2020-2023  润新知