Java实现-最小子串覆盖
2017-07-05 10:56
429 查看
给定一个字符串source和一个目标字符串target,在字符串source中找到包括所有目标字符串字母的子串。
注意事项
如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回起始位置最小的子串。
您在真实的面试中是否遇到过这个题?
Yes
说明
在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?
——不需要。
样例
给出source = "ADOBECODEBANC",target = "ABC" 满足要求的解
"BANC"
注意事项
如果在source中没有这样的子串,返回"",如果有多个这样的子串,返回起始位置最小的子串。
您在真实的面试中是否遇到过这个题?
Yes
说明
在答案的子串中的字母在目标字符串中是否需要具有相同的顺序?
——不需要。
样例
给出source = "ADOBECODEBANC",target = "ABC" 满足要求的解
"BANC"
public class Solution { /** * @param source: A string * @param target: A string * @return: A string denote the minimum window * Return "" if there is no such a string */ public String minWindow(String source, String target) { // write your code if(source.length()<target.length()){ return ""; } for(int i=target.length();i<=source.length();i++){ for(int j=0;j+i<=source.length();j++){ String s=source.substring(j, j+i); StringBuffer sb=new StringBuffer(s); int count=0; for(int k=0;k<target.length();k++){ if(sb.indexOf(target.charAt(k)+"")!=-1){ sb.deleteCharAt(sb.indexOf(target.charAt(k)+"")); count++; }else{ break; } } if(count==target.length()){ return s; } } } return ""; } }
相关文章推荐
- Java实现-最小子串覆盖
- 棋盘覆盖_分治策略_java实现
- java实现的棋盘覆盖
- Error:(84, 17) java: 方法不会覆盖或实现超类型的方法
- Java 往文件中写数据,新写入的数据总是覆盖原有数据,实现追加功能
- 矩形覆盖java实现
- 分析JAVA、C#、C++的“覆盖”和“隐藏”与多态的实现
- 【剑指offer——JAVA实现】矩形覆盖
- java数组实现买彩票(平移覆盖思想)
- java重写(覆盖)的实现
- Error:(84, 17) java: 方法不会覆盖或实现超类型的方法
- 实验一 分治与递归―棋盘覆盖问题 java实现
- 棋盘覆盖--递归分治java实现
- 算法java实现--分治法--棋盘覆盖问题
- java中方法的覆盖(多态实现的机制之一)
- Java编程之TreeSet排序两种解决方法(1)元素自身具备比较功能,元素需要实现Comparable接口覆盖compare(2)创建根据自定义Person类的name进行排序的Comparator
- java对象通用方法之覆盖equals时请遵守通用约定、覆盖equals时总要覆盖hashCode、始终要覆盖toString、考虑实现Comparable接口
- 棋盘覆盖--递归分治java实现
- 分治:棋盘覆盖的java程序实现
- java实现我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?