Count shift groups

Write codeMedium25 minMeta style

Your task

Two strings belong to the same shift group if one can be turned into the other by shifting every letter the same number of positions forward through the alphabet with wraparound (so "abc" -> "bcd" -> ... -> "xyz" -> "yza"; for example "az" and "ba" are in the same group because each letter advances by 1 with 'z' wrapping to 'a'). Given a list of lowercase strings, return the number of distinct shift groups. Strings of different lengths are never in the same group. The list may be empty.

Examples

num_shift_groups(strings: list[str]) -> int
Example 1
Inputnum_shift_groups(["abc", "bcd", "acef", "xyz", "az", "ba", "a", "z"])
Output4