11/6 <bit manipulation>
2024-09-06 07:05:08
389. Find the Difference
^ (按位异或): 参加运算的两个数,如果两个相应位为“异”(值不同),则该位结果为1,否则为0。
抵消掉相同的位,剩下的就是多余的位。
class Solution {
public char findTheDifference(String s, String t) {
char c = t.charAt(t.length() - 1);
for(int i = 0; i < s.length(); i++){
c ^= s.charAt(i);
c ^= t.charAt(i);
}
return c;
}
}
318. Maximum Product of Word Lengths
value[i] |= 1 << (tmp.charAt(j) - 'a');
int大小为32位,全部只有26个小写字母,每一位表示一个字母。
&(按位与) :对应位均为1时,结果位为1,否则为0
| (按位或):参加运算的两个数只要两个数中的一个为1,结果就为1
class Solution {
public int maxProduct(String[] words) {
if(words == null || words.length == 0)
return 0;
int len = words.length;
int[] value = new int[len];
for(int i = 0; i < len; i++){
String tmp = words[i];
value[i] = 0;
for(int j = 0; j < tmp.length(); j++){
value[i] |= 1 << (tmp.charAt(j) - 'a');
}
}
int maxProduct = 0;
for(int i = 0; i < len; i++)
for(int j = i + 1; j < len; j++){
if((value[i] & value[j]) == 0 && (words[i].length() * words[j].length() > maxProduct))
maxProduct = words[i].length() * words[j].length();
}
return maxProduct;
}
}
最新文章
- 我对Jenkins的认识
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
- 不引用office动态库导出excel
- java字符串和unicode互转
- BigDecimal类型比较大小
- word-wrap word-break white-space 用法。
- linux下的文件操作——批量重命名
- 使用dojo遮罩加载进度。
- ubuntu下QT输出程序控制台界面难看的解决方法
- JDK6和JDK7中的substring()方法
- 《第一行代码》学习笔记16-碎片Fragment(1)
- vuex使用报错
- java设计模式之 装饰器模式
- 程序员的自我救赎---3.2:SSO及应用案例
- Thinking in work
- 安装PyCharm开发工具
- js中Array数组的属性和方法
- vue的diff算法
- 《笔记》Apache2 mod_wsgi的配置