Thursday, March 6, 2014

确定一个String 是否是另一个String的repeat

Q:
有一种String,say strA,   是把一个更短的String, say strB 重复n次而构成的,那个更短的String至少为重复2次,输入一个String写代码返回T或者F

例子:
"abcabcabc"  Ture   因为它把abc重复3次构成
"bcdbcdbcde" False  最后一个是bcde
"abcdabcd"   True   因为它是abcd重复2次构成
"xyz"       False  因为它不是某一个String重复
"aaaaaaaaaa"  False  重复的短String长度应至少为2(这里不能看做aa重复5次)

要求算法复杂度为O(n)
public boolean isMultiple(String s){
}

A;
思路:
  应该是hashMap一下,然后数每个char的个数。  如果有1个的,就false
 然后,用最少的次数,例如3次。(其余char都应该是3的倍数。)
提取每一个char。  例如,如果另一个出现次数是9,则提取3遍。  这样,StrB就得到了。  假设长度为m, 那么,就依次查看在strA是不是strB 的重复即可。


Mistakes:




No comments:

Post a Comment