Code Room
CodingMediumcod-g159
Subject StringsLevel Mid–Senior~25 minCommon in Algorithms & data structures interviewsIndustries Software development

Question

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]) → int
Examples
in[["abc","bcd","acef","xyz","az","ba","a","z"]]out4
What 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.

Vibe coding: describe the solution in plain language (or narrate it) and the coach grades your approach. Generating runnable code from your description is coming next.

Run or narrate your approach, then ask the coach.