力扣题目java写的,第3道无重复字符最长子串,执行代码是对的,但是提交却报错?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣题目java写的,第3道无重复字符最长子串,执行代码是对的,但是提交却报错?相关的知识,希望对你有一定的参考价值。

代码已经截图,直接打的话它会把缩进全部省略掉,代码应该没有问题,就是提交不过,报错内容是之前没见过的,求解决。因为是力扣的题所以没有main函数。

程序出错的原因和改进的程序(见图,改动的地方见注释)

追问

力扣提示还是提交时解答错误,不过很感谢帮我看程序。

追答

错误信息能截图贴出来吗,我帮你看看.

追问

追答

能贴一下示例4的输入输出和解释吗(改动的方案见图)

追问

不行,还是出错。不过非常感谢,不理它了

参考技术A 一般而言,Java程序启动时并不会自动启动安全管理器,可以通过以下两种方法启动安全管理器:
① 一种是隐式,启动默认的安全管理器最简单的方法就是:直接在启动命令中添加-Djava.security.manager参数即可。
② 一种是显式,实例化一个java.lang.SecurityManager或继承它的子类的对象,然后通过System.setSecurityManager()来设置并启动一个安全管理器。
在启动安全管理器时可以通过-Djava.security.policy选项来指定安全策略文件。如果没有指定策略文件的路径,那么安全管理器将使用默认的安全策略文件,它位于%JAVA_HOME%/jre/lib/security目录下面的java.policy。需要说明一下的是,=表示这个策略文件将和默认的策略文件一同发挥作用;==表示只使用这个策略文件。policy文件包含了多个grant语句,每一个grant描述某些代码拥有某些操作的权限。在启动安全管理器时会根据policy文件生成一个Policy对象,任何时候一个应用程序只能有一个Policy对象。
参考技术B

命令行选项已启用Security Manager(安全管理器)
Security Manager(安全管理器)已弃用,将在未来的版本中删除

前两行翻译,你开了啥?
参考技术C 在红线行之前加上空判断代码。
if(s == null || s.length() == 0)return 0;

力扣 3无重复字符的最长子串

题目

给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

示例 1:

输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例 2:

输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例 3:

输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
示例 4:

输入: s = “”
输出: 0

提示:

0 <= s.length <= 5 * 104
s 由英文字母、数字、符号和空格组成

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

解释和代码

滑动窗口例题

遍历字符,如果该字符在unordered_set中就从前开始删除字符,不在就加入unordered_set,每次更新答案

class Solution 
public:
    int lengthOfLongestSubstring(string s) 
        if (s.size() == 0) return 0;
        int x = 0, y, ans = 1;
        unordered_set<char> usc;
        for (int i=0; i<s.size(); i++) 
            while (usc.count(s[i])) 
                usc.erase(s[x++]);
            
            usc.insert(s[i]);
            ans = max(ans, i-x+1);
        
        return ans;
    
;

以上是关于力扣题目java写的,第3道无重复字符最长子串,执行代码是对的,但是提交却报错?的主要内容,如果未能解决你的问题,请参考以下文章

力扣刷题:无重复字符的最长子串(java实现)

力扣 3无重复字符的最长子串

无重复字符的最长子串(力扣中等难度)

无重复字符的最长子串(力扣中等难度)

无重复字符的最长子串(力扣中等难度)

力扣 3. 无重复字符的最长子串