def sim(self, src: str, tar: str) -> float:
        """Return the Tarantula similarity of two strings.

        Parameters
        ----------
        src : str
            Source string (or QGrams/Counter objects) for comparison
        tar : str
            Target string (or QGrams/Counter objects) for comparison

        Returns
        -------
        float
            Tarantula similarity

        Examples
        --------
        >>> cmp = Tarantula()
        >>> cmp.sim('cat', 'hat')
        0.9948979591836735
        >>> cmp.sim('Niall', 'Neil')
        0.98856416772554
        >>> cmp.sim('aluminum', 'Catalan')
        0.9249106078665077
        >>> cmp.sim('ATCG', 'TAGC')
        0.0


        .. versionadded:: 0.4.0

        """
        if src == tar:
            return 1.0

        self._tokenize(src, tar)

        a = self._intersection_card()
        b = self._src_only_card()
        c = self._tar_only_card()
        d = self._total_complement_card()

        num = a * (c + d)
        if num:
            return num / (a * (2 * c + d) + b * c)
        return 0.0