1
|
// C5 example
|
2
|
// 2004-09-01
|
3
|
|
4
|
using System;
|
5
|
using C5;
|
6
|
using SCG = System.Collections.Generic;
|
7
|
|
8
|
class MyTest {
|
9
|
static readonly IHasher<TreeBag<char>> sequencedTreeBagHasher
|
10
|
= new C5.HasherBuilder.SequencedHasher<TreeBag<char>,char>();
|
11
|
static readonly IHasher<TreeBag<char>> unsequencedTreeBagHasher
|
12
|
= new C5.HasherBuilder.UnsequencedHasher<TreeBag<char>,char>();
|
13
|
|
14
|
static readonly IHasher<HashBag<char>> unsequencedHashBagHasher
|
15
|
= new C5.HasherBuilder.UnsequencedHasher<HashBag<char>,char>();
|
16
|
|
17
|
public static void Main(String[] args) {
|
18
|
}
|
19
|
|
20
|
public static void FindCollisions(SCG.IEnumerable<String> ss) {
|
21
|
HashBag<int> occurrences = new HashBag<int>();
|
22
|
foreach (String s in ss) {
|
23
|
TreeBag<char> tb = TreeBag(s);
|
24
|
// HashBag<char> hb = HashBag(s);
|
25
|
occurrences.Add(sequencedTreeBagHasher.GetHashCode(tb));
|
26
|
// unsequencedTreeBagHasher.GetHashCode(tb);
|
27
|
// unsequencedHashBagHasher.GetHashCode(hb);
|
28
|
}
|
29
|
|
30
|
}
|
31
|
|
32
|
public static TreeBag<char> TreeBag(String s) {
|
33
|
TreeBag<char> anagram = new TreeBag<char>();
|
34
|
foreach (char c in s)
|
35
|
anagram.Add(c);
|
36
|
return anagram;
|
37
|
}
|
38
|
|
39
|
public static HashBag<char> HashBag(String s) {
|
40
|
HashBag<char> anagram = new HashBag<char>();
|
41
|
foreach (char c in s)
|
42
|
anagram.Add(c);
|
43
|
return anagram;
|
44
|
}
|
45
|
}
|
46
|
|
47
|
|