zoukankan      html  css  js  c++  java
  • LeetCode字符串题目

    1. 无重复字符最长子串

    class Solution {
        public int lengthOfLongestSubstring(String s) {
            if (s == null || s.length() == 0) {
                return 0;
            }
            int[] index = new int[128];
            Arrays.fill(index, -1);
            // 滑动窗口大小
            int cur = 0;
            // 扫描过程中的出现的最长无重复子串
            int longest = 0;
            for (int i = 0; i < s.length(); i++) {
                if (index[s.charAt(i)] == -1) {
                    // 没有重复子串,滑动窗口增大
                    cur++;
                } else {
                    // 出现重复子串
                    longest = cur > longest ? cur : longest;
                    // 从如果重复字符在滑动窗口中,将重复字符的下一个字符作为滑动窗口的起点
                    int interval =  i - index[s.charAt(i)];
                    cur = interval > cur ? cur + 1 : interval;
                }
                index[s.charAt(i)] = i;
            }
            return longest > cur ? longest : cur;
        }
    }

     2. 最长回文子串

    class Solution {
        public String longestPalindrome(String s) {
            String result = "";
            for (int i = 1; i < s.length(); i++) {
                // 出现多个连续相同字符时,会在该字符出现的第一次进行处理,将整个连续相同字符作为回文串中心
                if (i - 1 >= 0 && s.charAt(i) == s.charAt(i - 1)) {
                    continue;
                }
                // 以i为中心向左右扩散
                int left = i - 1;
                int right = i + 1;
                // 处理多个重复字符为中心的情况, eg: abccba  需要以cc为中心进行扩散
                while (right < s.length() && s.charAt(i) == s.charAt(right)) {
                    right++;
                }
                while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
                    left--;
                    right++;
                }
                if (right - left - 1 > result.length()) {
                    result = s.substring(left + 1, right);
                }
            }
            return result;
        }
    }
  • 相关阅读:
    SOA设计模式
    MVC架构设计模式
    12周总结
    11周总结
    window环境pycharm中使用cityscapes数据集训练deeplabv3+经验总结
    分析六大质量属性战术
    《一线架构师实践指南》第三章阅读笔记
    pip install 无法安装cv2
    PHP disable_functions Bypass
    MallBuilder逻辑后门(复现)
  • 原文地址:https://www.cnblogs.com/catpainter/p/12851211.html
Copyright © 2011-2022 走看看