-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathPrintUniqueSubsequence.java
More file actions
29 lines (26 loc) · 932 Bytes
/
PrintUniqueSubsequence.java
File metadata and controls
29 lines (26 loc) · 932 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// Print all unique subsequences of a string.
package Recursion;
import java.util.HashSet; // for the Hashset function
public class PrintUniqueSubsequence {
public static void subsequences(String str, int idx, String newStr, HashSet<String> set){
if(idx == str.length()){
if(set.contains(newStr)){
return;
}else{
System.out.println(newStr);
set.add(newStr);
return;
}
}
char currChar = str.charAt(idx);
// to be come the character in new string(newstr)
subsequences(str, idx+1, newStr+currChar, set);
// not to be come the character in the new string(newStr)
subsequences(str, idx+1, newStr, set);
}
public static void main(String[] args) {
String str = "bbb";
HashSet<String> set = new HashSet<>();
subsequences(str, 0, "", set);
}
}