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;
}
}

最新文章

  1. 我对Jenkins的认识
  2. 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
  3. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
  4. 不引用office动态库导出excel
  5. java字符串和unicode互转
  6. BigDecimal类型比较大小
  7. word-wrap word-break white-space 用法。
  8. linux下的文件操作——批量重命名
  9. 使用dojo遮罩加载进度。
  10. ubuntu下QT输出程序控制台界面难看的解决方法
  11. JDK6和JDK7中的substring()方法
  12. 《第一行代码》学习笔记16-碎片Fragment(1)
  13. vuex使用报错
  14. java设计模式之 装饰器模式
  15. 程序员的自我救赎---3.2:SSO及应用案例
  16. Thinking in work
  17. 安装PyCharm开发工具
  18. js中Array数组的属性和方法
  19. vue的diff算法
  20. 《笔记》Apache2 mod_wsgi的配置

热门文章

  1. 洛谷 P1840 【Color the Axis_NOI导刊2011提高(05)】 题解
  2. 如何把任意网站制作成RSS
  3. umi+dva+antd新建项目
  4. sentry 9.1.1docker版onepremise过程记录
  5. 云原生时代, Kubernetes 多集群架构初探
  6. HTML教程详解
  7. 如何查询正在运行的SQL Server agent job
  8. Log4Net记录日志(mvc)
  9. 10道Python常见面试题
  10. 小鸟初学Shell编程(二)编写简单的Shell脚本