首页 > 其他 > 详细

lintcode671 循环单词

时间:2017-10-16 20:22:12      阅读:159      评论:0      收藏:0      [点我收藏+]

循环单词 

 

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.

 

 1 class Solution {
 2 public:
 3     /*
 4      * @param words: A list of words
 5      * @return: Return how many different rotate words
 6      */
 7     int countRotateWords(vector<string> words) {
 8         // Write your code here
 9         if (words.empty()) return 0;
10 
11         int count = words.size();
12         bool *flag = new bool[count];
13         memset(flag, false, count);
14         for (int i = 0; i < count - 1; i++) {
15             if (flag[i] == true) {
16                 continue;
17             }
18             for (int j = i + 1; j < count; j++) {
19                 if (isSame(words[i], words[j])) {
20                     flag[j] = true;
21                 }
22             }
23         }
24         for (int i = 0; i < words.size(); i++) {
25             if (flag[i]) {
26                 count--;
27             }
28         }
29         return count;
30     }
31     bool isSame(string wordi, string wordj) {
32         if (wordi.length() != wordj.length()) {
33             return false;
34         }
35         wordi = wordi + wordi;
36         if (wordi.find(wordj) != string::npos) {
37             return true;
38         } else {
39             return false;
40         }
41     }
42 };

 

lintcode671 循环单词

原文:http://www.cnblogs.com/gousheng/p/7678570.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!