671. 循环单词
The words are same rotate words if rotate the word to the right by loop, and get another. Count how many different rotate word sets in dictionary.
E.g. picture and turepic are same rotate words.
样例
Given dict = ["picture", "turepic", "icturep", "word", "ordw", "lint"]
return 3
.
"picture", "turepic", "icturep"
are same ratote words."word", "ordw"
are same too."lint"
is the third word that different from the previous two words.
注意事项
所有单词均为小写。
解题思路:
遍历words,如果word没有在s中出现,则count+1, 将word的全部形态都加入s中。
class Solution:
"""
@param: words: A list of words
@return: Return how many different rotate words
"""
def countRotateWords(self, words):
# Write your code here
count = 0
s = set()
for word in words:
if word not in s:
count += 1
s.add(word)
changed = self.change_word(word)
while changed != word:
s.add(changed)
changed = self.change_word(changed)
return count
def change_word(self, words):
return words[len(words) - 1: ] + words[0:len(words) - 1]