Skip to content

Commit 5292565

Browse files
authored
Add files via upload
1 parent 365ca0c commit 5292565

File tree

3 files changed

+149
-0
lines changed

3 files changed

+149
-0
lines changed

LongestSubstring.java

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
package sample.ankit.amazon;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
6+
public class LongestSubstring {
7+
8+
public static void main(String[] args) {
9+
// TODO Auto-generated method stub
10+
//List<String> words=Arrays.asList("bc","ab","bde","ae","ae");
11+
//String input="abcde";
12+
List<String> words=Arrays.asList("be");
13+
String input="abcde";
14+
System.out.println(findLongestSequence(words, input));
15+
}
16+
17+
18+
public static String findLongestSequence(List<String> words,String input){
19+
int sizeOfSequence=0;
20+
String finalWord="";
21+
for(String aWord:words){
22+
if(isASubSequence(aWord, input)){
23+
int sizeOfCurrentWord=aWord.length();
24+
if(sizeOfCurrentWord>sizeOfSequence){
25+
sizeOfSequence=sizeOfCurrentWord;
26+
finalWord=aWord;
27+
}
28+
}
29+
}
30+
return finalWord;
31+
}
32+
33+
//least optimal = > for each word we have to scan the input word again
34+
private static boolean isSubSequence(String word,String input){
35+
int indexOfLast=-1;
36+
char[] allChars=word.toCharArray();
37+
for(char aChar:allChars){
38+
int index=input.indexOf(aChar);
39+
if(index==-1){
40+
return false;
41+
}else{
42+
if(index<=indexOfLast){
43+
return false;
44+
}
45+
indexOfLast=index;
46+
}
47+
}
48+
return true;
49+
}
50+
51+
private static boolean isASubSequence(String word,String input){
52+
char[] inputChars=input.toCharArray();
53+
char[] wordChars=word.toCharArray();
54+
boolean result=true;
55+
boolean found=false;
56+
int i=0,j=0;
57+
while(i < wordChars.length){
58+
found=false;
59+
while(j< inputChars.length){
60+
if(wordChars[i] == inputChars[j]){
61+
i++;
62+
j++;
63+
found=true;
64+
break;
65+
}else{
66+
j++;
67+
}
68+
}
69+
if(found==false){
70+
result=false;
71+
break;
72+
}
73+
}
74+
75+
return result;
76+
}
77+
78+
private static boolean isASubSequenceSingleLoop(String word,String input){
79+
char[] inputChars=input.toCharArray();
80+
char[] wordChars=word.toCharArray();
81+
for(int i=0,j=0;i<wordChars.length && j<inputChars.length; ){
82+
if(wordChars[i] == inputChars[j]){
83+
if(i==wordChars.length-1){
84+
return true;
85+
}
86+
i++;
87+
j++;
88+
89+
}else{
90+
j++;
91+
92+
}
93+
}
94+
95+
return false;
96+
}
97+
98+
99+
}

MyLinkedHashMap.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package sample.ankit.amazon;
2+
3+
import java.util.Map;
4+
5+
public class MyLinkedHashMap {
6+
7+
public static void main(String[] args) {
8+
// TODO Auto-generated method stub
9+
Map<String,String> testMap=new java.util.LinkedHashMap<String,String>(10,.75f,true);
10+
testMap.put("Ankit", "Kumar");
11+
testMap.put("Rahul", "Kamboj");
12+
testMap.put("Anusha", "Varshney");
13+
testMap.put("Payal ", "Kamboj");
14+
15+
System.out.println(testMap);
16+
testMap.get("Anusha");
17+
System.out.println(testMap);
18+
}
19+
20+
21+
}

SumFinder.java

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package sample.ankit.amazon;
2+
3+
public class SumFinder {
4+
5+
public static void main(String[] args) {
6+
int arr[] ={-9,-5,-1,0,2,5,6,20};
7+
int sum=11;
8+
int start=0;
9+
int end=arr.length-1;
10+
while(start<end){
11+
12+
}
13+
}
14+
15+
16+
17+
18+
}
19+
20+
class Test extends SumFinder implements Comparable{
21+
22+
@Override
23+
public int compareTo(Object o) {
24+
// TODO Auto-generated method stub
25+
return 0;
26+
}
27+
28+
}
29+

0 commit comments

Comments
 (0)