题目P318最大单词长度乘积
题目还是比较简单的,合理的运用了位运算,a-z16个字母为0-25位,最后与运算求是否有相同的字母,关键代码如下:
对于每一个words[i]的string字符串,用mark[i]记录26个单词的出现:
string str=words[i];
“....”
mark[i]|=1<<(str[j]-'a');
循环遍历每一个单词,判断是否有相同字母出现:
if((mark[i]&mark[j])==0)
msize=max(msize,int(words[i].size()*words[j].size()));
同时注意一个有意思的地方:words[i].size()返回的是无符号数,因此要用int修改数据。
1万+

被折叠的 条评论
为什么被折叠?



