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