-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMain.java
More file actions
49 lines (39 loc) · 1.54 KB
/
Main.java
File metadata and controls
49 lines (39 loc) · 1.54 KB
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.surenderthakran.codes.findnumberofsmallstringpermutationsinlargestring;
import java.util.Arrays;
/**
* Given a large string and a small string as inputs, find the permutations of the small string
* which are substrings of the large string.<br>
* Assumptions:<br>
*
* <ul>
* <li>The large string is always longer than the small string.
* </ul>
*/
class Main {
public static void main(String[] args) {
boolean assertsEnabled = false;
assert assertsEnabled = true;
if (assertsEnabled) {
assert areEqualIgnoringOrder(
Solution.getSubstringPermutations("cbabcacabca", "abc"),
new String[] {"cba", "abc", "bca", "cab", "abc", "bca"});
assert areEqualIgnoringOrder(
Solution.getSubstringPermutations("cbabcacabca", "acc"), new String[] {"cac"});
assert areEqualIgnoringOrder(
Solution.getSubstringPermutations("aaaaaaa", "aaa"),
new String[] {"aaa", "aaa", "aaa", "aaa", "aaa"});
assert areEqualIgnoringOrder(
Solution.getSubstringPermutations("cbabcacabca", "def"), new String[] {});
assert areEqualIgnoringOrder(
Solution.getSubstringPermutations("cbabcacabca", "a"), new String[] {"a", "a", "a", "a"});
System.out.println("All Assertions Succeeded!");
} else {
System.out.println("Asserions not enabled! Results not verified!");
}
}
private static boolean areEqualIgnoringOrder(String[] first, String[] second) {
Arrays.sort(first);
Arrays.sort(second);
return Arrays.equals(first, second);
}
}