Redian新闻
>
满月的宝宝只有趴着才肯入睡
avatar
满月的宝宝只有趴着才肯入睡# NextGeneration - 我爱宝宝
e*s
1
Given an array of strings, return all groups of strings that are anagrams.
All inputs will be in lower-case
Given ["lint", "intl", "inlt", "code"], return ["lint", "inlt", "intl"].
Given ["ab", "ba", "cd", "dc", "e"], return ["ab", "ba", "cd", "dc"].
9章的参考程序如下, 他给每一个string换成26长度的int array. 然后用这个array生
成一个hash code. 问题是这个hashcode能够唯一对应一个anagram么. 不同的anagram
有没有对应同一个hashcode的可能 (考虑int overflow的情况下).
public class Solution {
private int getHash(int[] count) {
int hash = 0;
int a = 378551;
int b = 63689;
for (int num : count) {
hash = hash * a + num;
a = a * b;
}
return hash;
}

public ArrayList anagrams(String[] strs) {
ArrayList result = new ArrayList();
HashMap> map = new HashMapArrayList>();
for (String str : strs) {
int[] count = new int[26];
for (int i = 0; i < str.length(); i++) {
count[str.charAt(i) - 'a']++;
}
int hash = getHash(count);
if (!map.containsKey(hash)) {
map.put(hash, new ArrayList());
}
map.get(hash).add(str);
}
for (ArrayList tmp : map.values()) {
if (tmp.size() > 1) {
result.addAll(tmp);
}
}
return result;
}
}
avatar
h*9
2
一到晚上宝宝睡眠就成了个难题。不停地挣劲,只有让他趴着睡才踏实。
avatar
Y*n
3
代码看着有点奇怪,既然已经设置了int[] count, 每次将str的每一个字母放进去之后
,然后从0到26依次搜集这些字母,遍组成了一个hash code,这样互为anagram的两个
字符串将拥有相同的hash code. 上面求解hash的 a *= b 存在溢出的风险。
avatar
r*f
4
大人多看紧点好了。

【在 h**********9 的大作中提到】
: 一到晚上宝宝睡眠就成了个难题。不停地挣劲,只有让他趴着睡才踏实。
avatar
e*s
5
我也觉得 理论上是不能保证的溢出了还能保证unique.
一个26长度的int数组有INT_MAX^26种组合方式
远远超出int的范围.
就算每个int的范围是0~2 3^26也超出int的范围了.
我发现他们家贴的好多答案都简单粗暴的不负责任啊.

【在 Y****n 的大作中提到】
: 代码看着有点奇怪,既然已经设置了int[] count, 每次将str的每一个字母放进去之后
: ,然后从0到26依次搜集这些字母,遍组成了一个hash code,这样互为anagram的两个
: 字符串将拥有相同的hash code. 上面求解hash的 a *= b 存在溢出的风险。

avatar
h*7
6
不是说趴着睡不好么?
avatar
T*e
7
好像很多小孩都喜欢趴着睡,不过还是最好不要。能不能睡着了后给翻过来。
avatar
r*f
8
well, 除了怕窒息,别的没啥不好

【在 h*****7 的大作中提到】
: 不是说趴着睡不好么?
avatar
t*n
9
我家的从6周开始扒着睡得,现在3个半月了 ,也可以躺下睡了,不过还是趴着睡得比
较踏实
avatar
S*i
10
我有个朋友的儿子也是只能扒着睡,睡了好几年,头都睡方了。据说是因为月子里的时
候包得不够紧,所以还是注意点好。趴着的姿势总归不太好。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。