def isWordLadder(s: str) -> bool: """Check if a string is a word ladder.""" words = s.split("-") if len(words) < 2: return False if len(words[0]) != len(words[-1]): return False if len(set(words)) != len(words): return False for i in range(len(words) - 1): if len(words[i]) != len(words[i + 1]): return False diff = 0 for j in range(len(words[i])): if words[i][j] != words[i + 1][j]: diff += 1 if diff != 1: return False return True print("Testing isWordLadder()...", end="") assert isWordLadder("dog-cog-cot-cat") == True assert isWordLadder("cat-bat") == True assert isWordLadder("cold-cord-card-ward-warm") == True assert isWordLadder("toggle-goggle-google") == True assert isWordLadder("cold-cord-card-warm") == False assert isWordLadder("cat-bat-cat") == False # duplicate word assert isWordLadder("cat-bat-") == False assert isWordLadder("cat-cats") == False assert isWordLadder("cat-cabs") == False assert isWordLadder("cat") == False # just one word assert isWordLadder("") == False # no words assert isWordLadder("-") == False # no words print("Passed!")