  Synchronization strings are recently introduced by Haeupler and Shahrasbi
[HS17a] in the study of codes for correcting insertion and deletion errors
(insdel codes). A synchronization string is an encoding of the indices of the
symbols in a string, and together with an appropriate decoding algorithm it can
transform insertion and deletion errors into standard symbol erasures and
corruptions. This reduces the problem of constructing insdel codes to the
problem of constructing standard error correcting codes, which is much better
understood. Besides this, synchronization strings are also useful in other
applications such as synchronization sequences and interactive coding schemes.
  Amazingly, [HS17a] showed that for any error parameter $\varepsilon>0$,
synchronization strings of arbitrary length exist over an alphabet whose size
depends only on $\varepsilon$. Specifically, they obtained an alphabet size of
$O(\varepsilon^{-4})$, as well as a randomized construction that runs in
expected time $O(n^5)$. However, it remains an interesting question to find
deterministic and more efficient constructions.
  In this paper, we improve the construction in [HS17a] in three aspects: we
achieve a smaller alphabet size, a deterministic construction, and a faster
algorithm. Along the way we introduce a new combinatorial object, and establish
a new connection between synchronization strings and insdel codes --- such
codes can be used in a simple way to construct synchronization strings. This
new connection complements the connection found in [HS17a], and may be of
independent interest. In an independent work [HS17c], Haeupler and Shahrasbi
also give deterministic constructions of synchronization strings over arbitrary
length (or even infinite length). Their constructions can achieve linear
construction time, but have alphabet size $\varepsilon^{-O(1)}$, which may be
larger than ours.
