[leetcode]76. Minimum Window Substring@Java解题报告
来源:互联网 发布:新网域名证书查询 编辑:程序博客网 时间:2024/05/20 19:45
https://leetcode.com/problems/minimum-window-substring/#/description
Given a string S and a string T, find the minimum window in S which will contain all the characters in T in complexity O(n).
For example,
S = "ADOBECODEBANC"
T = "ABC"
Minimum window is "BANC"
.
Note:
If there is no such window in S that covers all characters in T, return the empty string ""
.
If there are multiple such windows, you are guaranteed that there will always be only one unique minimum window in S.
package go.jacob.day725;import java.util.HashMap;import java.util.Map;/** * 76. Minimum Window Substring * * @author Jacob * */public class Demo2 {public String minWindow(String s, String t) {if (s == null || t == null || s.length() < t.length())return "";// HashMap的key为t中各个字符,value为对应字符个数Map<Character, Integer> map = new HashMap<Character, Integer>();for (char c : t.toCharArray()) {if (!map.containsKey(c))map.put(c, 0);map.put(c, map.get(c) + 1);}// minLeft为最小窗口左下标,minLen为最小长度,count用来计数int minLeft = 0, minLen = s.length() + 1, count = 0;int left = 0;for (int i = 0; i < s.length(); i++) {char c = s.charAt(i);if (map.containsKey(c)) {// 如果map.get(c)说明t中还有字符没有包含,计数器+1if (map.get(c) > 0){count++;}map.put(c, map.get(c) - 1);}// 如果left到i中包含t中所有字符while (count == t.length()) {if (i - left + 1 < minLen) {minLeft = left;minLen = i - left + 1;}c = s.charAt(left);if (map.containsKey(c)) {map.put(c, map.get(c) + 1);if (map.get(c) > 0)count--;}left++;}}if (minLen > s.length())return "";return s.substring(minLeft, minLeft + minLen);}}
阅读全文
0 0
- [leetcode] 76. Minimum Window Substring 解题报告
- [Leetcode] 76. Minimum Window Substring 解题报告
- [leetcode]76. Minimum Window Substring@Java解题报告
- [LeetCode] Minimum Window Substring 解题报告
- Leetcode 76. Minimum Window Substring 最小子串窗口 解题报告
- leetcode解题笔记-Minimum Window Substring
- [Leetcode] Minimum Window Substring (Java)
- Minimum Window Substring LeetCode java
- [LeetCode][Java] Minimum Window Substring
- LeetCode 76. Minimum Window Substring
- [LeetCode]76.Minimum Window Substring
- LeetCode 76.Minimum Window Substring
- LeetCode --- 76. Minimum Window Substring
- [Leetcode] 76. Minimum Window Substring
- [leetcode] 76.Minimum Window Substring
- **LeetCode 76. Minimum Window Substring
- leetcode 76. Minimum Window Substring
- 【LeetCode】76. Minimum Window Substring
- 设计模式大汇总
- HDU 1879 继续畅通工程 (最小生成树--Kruscal)
- 【学习笔记】天嵌2440第三季下学期——linux多线程互斥
- 关于Git的一些理解
- ExpandableListView 二级列表的一个简单案例
- [leetcode]76. Minimum Window Substring@Java解题报告
- es6环境搭建
- Bootstrap在导航栏上用下拉菜单并保持对齐
- JavaBean的部分用法(一)
- 二分查找归类
- Apache Sqoop 入门
- 【转】Unity3D脚本中Start()和Awake()的区别
- Object对象深入理解及通用接口
- 查询MySQL文件存储位置