-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEncoding.java
More file actions
73 lines (50 loc) · 1 KB
/
Encoding.java
File metadata and controls
73 lines (50 loc) · 1 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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import java.util.*;
public class Encoding {
public String stringBuild(int m, int n)
{
StringBuilder sb = new StringBuilder();
for( int i = 0 ; i < m ; i++)
{
sb.append('.');
}
for ( int i = 0 ; i < n ; i++)
{
sb.append('-');
}
return sb.toString();
}
public void permutation( int l , int r , String str, TreeSet<String> t)
{
if ( l == r)
{
t.add(str);
}
else
{
for (int i = l ; i <= r ; i++)
{
str = swap(l , i, str);
this.permutation(l+1 , r, str, t);
str = swap (l , i , str);
}
}
}
public String swap(int i , int j, String s)
{
char[] ar = s.toCharArray();
char temp;
temp = ar[i];
ar[i] = ar[j];
ar[j] = temp;
String xyz = String.valueOf(ar);
return xyz;
}
public static Set<String> morseCodes(int m , int n)
{
Encoding m1 = new Encoding();
TreeSet<String> tt = new TreeSet<String>();
String z = m1.stringBuild(m, n);
m1.permutation(0, z.length()-1, z, tt);
return tt;
}
}