LintCode 循环单词
2017-10-26 21:31
232 查看
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.
如何判断两个字符串是s1,s2是相同的:把两个s1相连成新串,判断s2是不是新串的子串。
用了集合来做,试了一下对equals()和hashcode()的重写。
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.
如何判断两个字符串是s1,s2是相同的:把两个s1相连成新串,判断s2是不是新串的子串。
用了集合来做,试了一下对equals()和hashcode()的重写。
public class Solution { /* * @param words: A list of words * @return: Return how many different rotate words */ private String value; public Solution(){} public Solution(String s) { this.value=s; } public String toString() { return this.value; } public boolean equals(Object o) { if(o==this){ return true; } if(!(o instanceof Solution)) { return false; } Solution word=(Solution) o; return judge(this.value,word.value); } public int hashCode() { Solution word= (Solution) this; List<Character> l=new ArrayList<Character>(); for(char x:value.toCharArray()){ l.add(x); } Collections.sort(l); StringBuilder b=new StringBuilder(); for(char x:l){ b.append(x); } return b.toString().hashCode(); } public boolean judge(String s1,String s2){ return (s1+s1).contains(s2); 9822 } public int countRotateWords(List<String> words) { // Write your code here Set<Solution> s=new HashSet<Solution>(); for(String x:words){ if(!s.contains(x)){ s.add(new Solution(x)); } } return s.size(); } }
相关文章推荐
- 循环单词-LintCode
- LintCode 671 循环单词
- 单词表示数字-LintCode
- lintcode 容易题:Length of Last Word 最后一个单词的长度
- 回环变位(2017校招一模-----循环单词)
- lintcode python 代码 133 最长单词
- C+ + cin 循环录入单词 遇特殊字符串结束
- DFS-lintcode单词搜索(word-search)
- 671. 循环单词
- Struts表单无法提交/循环标签无法读取——禁忌单词province
- ***[Lintcode]Word Ladder 单词接龙
- [LintCode] Length of Last Word 求末尾单词的长度
- LintCode-单词接龙II
- 循环-06. 统计一行文本的单词个数(15)
- 循环-06. 统计一行文本的单词个数
- [LintCode 107] 单词切分(Python)
- 671 - 循环单词
- 牛客网编程题:循环单词(Java实现)
- 单词搜索 -LintCode
- 牛客之统计n个单词中有多少种循环单词