Skip to content

Commit d1ea839

Browse files
author
Antesh Sharma
committed
Find all possible subsequences or substring of given string
1 parent c0759a0 commit d1ea839

File tree

3 files changed

+45
-1
lines changed

3 files changed

+45
-1
lines changed

src/main/java/com/antesh/dsa/dp/CoinChangeWithMinimumCoinsProblemDP.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ else if (coins[i-1] > j) {
3636
}
3737
}
3838

39-
//minimum coins required will be at the mast row and column
39+
//minimum coins required will be at the last row and column
4040
return memo[coins.length][amount];
4141
}
4242
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package com.antesh.dsa.string;
2+
/* Find all possible substring of given input string
3+
* Sample 1: AB
4+
* Output 1: {}, {A}, {B}, {AB} // i.e. 2^n possible
5+
*
6+
* Sample 2: ABC
7+
* Output 2: {}, {A}, {B}, {C}, {AB}, {AC}, {BC}, {ABC}
8+
* */
9+
10+
11+
import java.util.HashSet;
12+
import java.util.List;
13+
import java.util.Set;
14+
import java.util.stream.Collectors;
15+
16+
public class AllPossibleSequencesOrSubString {
17+
18+
public static void subSequence(String input, Set<String> outputs) {
19+
if (input == null || input.trim().length() == 0) {
20+
outputs.add("");
21+
return;
22+
}
23+
24+
subSequence(input.substring(1), outputs);
25+
26+
List<String> cp = outputs.stream().collect(Collectors.toList());
27+
for (String s : cp) {
28+
outputs.add(input.substring(0, 1) + s);
29+
}
30+
}
31+
32+
public static void main(String[] args) {
33+
Set<String> outputs = new HashSet<>();
34+
subSequence("ABCD",outputs);
35+
System.out.println(outputs);
36+
System.out.println(outputs.size());
37+
38+
outputs = new HashSet<>();
39+
subSequence("AAAA",outputs);
40+
System.out.println(outputs);
41+
System.out.println(outputs.size());
42+
}
43+
}

src/main/java/com/antesh/problems/SumOfDigits.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ public static void main(String[] args) {
66
int number = 1234;
77
System.out.println("sum of digits of " + number + " is " + sumOfDigits(number));
88
System.out.println("sum of digits of " + number + " is " + sumInOofOneTime(number));
9+
System.out.println("sum of digits of " + number + " is " + sumInOofOneTime(88));
910
}
1011

1112
//O(n)

0 commit comments

Comments
 (0)