zoukankan      html  css  js  c++  java
  • 滑动窗口算法-1

    给定一个字符串 S 和一个字符串 T,请在 S 中找出包含 T 所有字母的最小子串?

    输入: S = "ADOBECODEBANC", T = "ABC"
    输出: "BANC"
        public static void main(String[] args) {
            System.out.println(t());
        }
        public static String t() {
            String st = "ADOBECODEBANC";
            String subSt = "ABC";
            int startIndex = 0;
            int endIndex = 0;
            String strMinLen = "";
            while (endIndex <= st.length() && startIndex <= endIndex) {
                boolean flag = containSubStr(st, startIndex, endIndex, subSt);
                if (!flag) {
                    endIndex++;
                }
                if (flag) {
                    strMinLen = "".equals(strMinLen) ? st.substring(startIndex, endIndex) : (strMinLen.length() > st.substring(startIndex, endIndex).length() ? st.substring(startIndex, endIndex) : strMinLen);
                    startIndex++;
                }
            }
            return strMinLen;
        }
    
        public static boolean containSubStr(String orgStr, int startIndex, int endIndex, String subStr) {
            String orgStrTemp = orgStr.substring(startIndex, endIndex);
            System.out.println("orgStrTemp=" + orgStrTemp);
            char[] orgStrCharArray = orgStrTemp.toCharArray();
            char[] subCharArray = subStr.toCharArray();
            int subLen = subCharArray.length;
            for (char s : subCharArray) {
                for (char o : orgStrCharArray) {
                    if (s == o) {
                        subLen--;
                        break;
                    }
                }
            }
            return subLen <= 0;
        }
    算法参考:https://www.zhihu.com/question/314669016
  • 相关阅读:
    Linux学习记录(四):Shell脚本
    Linux学习记录(三):Vim
    基于PyTorch构建神经网络
    Python开发【第一篇】:初识Python
    asyncio 并发编程(二)
    asyncio 并发编程(一)
    Linux 文件和目录操作命令(一)
    Django Model
    Django 之 Form 组件
    Django 模板系统
  • 原文地址:https://www.cnblogs.com/use-D/p/13278141.html
Copyright © 2011-2022 走看看