Count shift groups
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.
Implement
num_shift_groups(strings: list[str]) → intExamples
in
[["abc","bcd","acef","xyz","az","ba","a","z"]]out4What a strong answer looks like
State your approach and its time/space complexity out loud before you optimize. Handle the edge cases (empty input, duplicates, overflow), and say why you chose this over the brute force. Green tests are the floor, not the grade.
0:00 of about 25 min
solution.py
InputExpectedGot
[["abc","bcd","acef","xyz","az","ba","a","z"]]4not run yetsample