异或运算

异或运算的特性:

  • 异或自己得0,任何数异或0得自己本身;
  • 具有交换律、结合律,例如 1^2^3^4^2^3^1 = (1^1)^(2^2)^(3^3)^4 = 0^0^0^4 = 0^4 = 4;

总结:异或运算擅长找不同。

 

例题(leetcode389找不同):

 

 

1 class Solution {
2 public:
3     char findTheDifference(string s, string t) {
4         vector<int> dp1(26, 0), dp2(26, 0);
5         for(int i = 0; i < s.size(); i++) t[0] ^= s[i];
6         for(int i = 1; i < t.size(); i++) t[0] ^= t[i];
7         return t[0];
8     }
9 };

 

posted @ 2020-08-05 20:11  Cyber_8086_hyj  阅读(143)  评论(0编辑  收藏  举报