671. 循环单词

作者: 和蔼的zhxing | 来源:发表于2018-01-31 14:41 被阅读10次

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.

重复加标记

难点在于如何判断是否是循环单词,看到别人的思路:可以把当前单词重复一次,然后所有的循环单词都是可以在这个重复的单词中找到的,其实有点像循环移位和线性移位的关系,周期延拓之后线性移位和循环移位的结果是一样的。
比如对于单词word,先重复一遍得到:wordword.
word的循环单词都是wordword的子串,找子串可以借助string::find(s)函数,这样就能判断是否是子串。
这样我们就可以去遍历vector中的单词了,对于第一个单词,扩充,然后在余下的单词中找是循环关系的,找到的应该都是要标记出来的,要不会有重复,可以定义一个vector来标记这个单词是否被找到(找到了在后面就无需遍历了),每完成这样的一次查找,计数器+1,一直遍历到最后一个单词。

int countRotateWords(vector<string> words)
     {
        int res = 0;
        int sz = words.size();
        string dbCurrent;
        vector<bool> check(sz, false);
        if (words.empty())
        return res;
        for (int i = 0; i < sz; i++)
        {
        if (!check[i])
        {
            dbCurrent = words[i] + words[i];
            for (int j = i + 1; j < sz; j++)
            {
                if (words[j].size() == words[i].size() && dbCurrent.find(words[j])!=string::npos)
                    check[j] = true;
            }
            res++;
        }
        }
        return res;
     }

相关文章

  • 671. 循环单词

    The words are same rotate words if rotate the word to the...

  • 循环单词

    问题描述 如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。 例如:picture 和 ture...

  • 循环单词

  • [编程题] 循环单词

    如果一个单词通过循环右移获得的单词,我们称这些单词都为一种循环单词。 例如:picture 和 turepic 就...

  • LintCode 671. Rotate Words

    原题 LintCode 671. Rotate Words Description The words are s...

  • 笔记:什么是OODA循环?

    OODA循环,是观察、调整、决策、行动的四个循环。其中,OODA是这四个环节英语单词的首字母。 这个循环,来自美国...

  • 671.临近毕业

    这是孙少平在高中的最后一个学期,因为很多活动,他错过了很多课,以致于跟不上,但不变的是,田晓霞会借很多的书给他看,...

  • GMAT OG 2019语法新题解析671

    GMAT OG2019全新出炉,欧米GMAT整理语法部分新题并附上解析,持续更新,欢迎关注! 671. In a ...

  • 【欧亚外语】韩语背单词有什么技巧和方法?

    很多同学会抱怨,学韩语跟学英语一样,每天都在背单词背单词,明明今天背好的单词,过了几天又忘记了,就这样无限循环中,...

  • 推歌 |  Are we getting closer?

    Outlaws Of Love 今天背单词的时候脑子里一直在循环这首歌的调调 为了满足大脑 循环了好久 •ᴗ• 风...

网友评论

    本文标题:671. 循环单词

    本文链接:https://www.haomeiwen.com/subject/uxokzxtx.html