srinav141
BAN USERimport java.util.ArrayList;
import java.util.List;
public class SubstringDistincyChars {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="asdfrttt";
//String str="aaaasaaa";
int k=3;
SubstringDistincyChars sd = new SubstringDistincyChars();
String result = sd.getSubstring(str, k);
if(result.equals(str.substring(0, 1))){
System.out.println("Number of distinct characters in given strning is less than the given input");
}
else{
System.out.println("Max substring is "+result);
}
}
public String getSubstring(String s, int distinct){
char[] ch = s.toCharArray();
int n=1;
int ind =0;
String mainString = s.substring(0, 1);
String maxString = s.substring(0, 1);
List<Character> l = new ArrayList<Character>();
for(int i =0;i<ch.length;i++){
if(l.contains(ch[i])){
maxString = s.substring(0, i+1);
ind = i+1;
}else if(n<= distinct){
l.add(ch[i]);
maxString = s.substring(0, i+1);
n++;
ind = i+1;
}
}
if(n > distinct && maxString.length() > mainString.length()){
mainString = maxString;
}
if (mainString.length() < s.substring(ind,s.length()).length()){
mainString = getSubstring(s.substring(ind,s.length()), distinct);;
}
return mainString;
}
}
- srinav141 March 05, 2017