Java教程

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

本文主要是介绍3. 无重复字符的最长子串,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

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

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

import java.util.Arrays;

class Solution {
    public int lengthOfLongestSubstring(String s) {
        if (s == null || s.length() == 0) {
            return 0;
        }

        int[] hash = new int[256];

        Arrays.fill(hash, -1);

        int pre = 0;
        int ret = 0;

        for (int i = 0; i < s.length(); ++i) {
            pre = Math.min(pre + 1, i - hash[s.charAt(i)]);
            ret = Math.max(ret, pre);
            hash[s.charAt(i)] = i;
        }

        return ret;
    }
}
这篇关于3. 无重复字符的最长子串的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!