A nondeterministic finite automaton N is given. Construct an equivalent deterministic finite automaton (or a program with a finite number of states) that checks if an input string x is accepted by N (that is, if x can be read on a path from I to F).
The states of the deterministic automaton are sets of vertices of the nondeterministic automaton. After a prefix X of the input string is read, the state s (X) of the deterministic automaton is the set of all vertices that are reachable from I along paths carrying the string X on it. In other words, consider all paths starting from I. Each path determines a string that can be read along it. If the string is X, include the end of the path into s (X).