当前位置: 首页 > news >正文

java笔试题,寻找多出来的元素

题目:有两个数组a和b,其中b有一个元素是a没有的,其他元素都相同,请找出b中这个多余的元素。

1 public class Test02 {

3 public static void main(String[] args) {

4 int[] a = {11, 34, 9, -4, 100, 98};

5 int[] b = {34, 55, 11, 9, 100, -4, 98};

6

7 int c = 0;

8 for(int i = 0; i < a.length; i++) {

9 c ^= a[i] ^ b[i];

10 }

11 c ^= b[b.length - 1];

12

13 System.out.println(c);

14 }

15 }

利用位运算中异或运算的特点,两个相同的数异或的结果一定是0,那么将a和b中的所有元素做一次异或运算,最终的结果就是b比a多出的那个元素的值。

事实上,利用异或运算的这个性质可以做一个简单的对称加密(加密和解密使用相同的密钥(私钥)),比如可以将字符串“我爱你”加密为“抺犚俋”(密钥为0xAB),当然也可以用此密钥对加密后的字符串再进行一次异或运算还原出“我爱你”,代码如下所示:

1 public class Test02 {

2

3 public static void main(String[] args) {

4 String s = "我爱你";

5 int key = 0xAB;

6 String temp = "";

7 for(int i = 0, len = s.length(); i < len; i++) {

8 temp += (char)(s.charAt(i) ^ key);

9 }

10 System.out.println(temp);

11 }

12 }

http://www.lryc.cn/news/159236.html

相关文章:

  • docker笔记3 Docker常规安装
  • 阻止 NTLM后无法登录远程桌面的原因
  • Docker网络功能
  • 如何入门 AI----如何确定学习目标
  • ABAP中加前导零和去前导零方法
  • 聊聊ShardingSphere是怎么进行sql重写的
  • 软件设计模式系列之二——抽象工厂模式
  • P2719 搞笑世界杯 (期望dp
  • spring cloud新版本使用loadbalancer替代Ribbon
  • 【Git-Exception】Git报错:fatal: unable to auto-detect email address
  • JVM性能优化 —— 类加载器,手动实现类的热加载
  • SSH连接MobaXterm
  • 本地虚机Jumpserver使用域名访问报错 使用IP+端口没有错误
  • 备战计算机二级公共基础知识(五)----数据库设计基础
  • 【excel密码】excel文件加密方法总结:
  • MySQL之用户管理
  • 伪静态web.config常见规则写法与参数介绍说明
  • 使用kubasz快速搭建Kubernetes集群
  • php常用加密算法大全aes、3des、rsa等
  • ubuntu22.04搭建verilator仿真环境
  • python中如何使用正则表达匹配\本身?(文末赠书)
  • Linux学习之MySQL连接查询
  • 【Hello Algorithm】二叉树相关算法
  • ExpressLRS开源代码之工程结构
  • fastjson 1.2.24 反序列化导致任意命令执行漏洞复现
  • 探秘MySQL三个神秘隐藏列(mysql三个隐藏列) rownum、rowid、oid
  • leetcode刷题--数组类
  • Vue3---uni-app--高德地图引用BUG
  • Stable Diffuse 之 本地环境部署/安装包下载搭建过程简单记录
  • 护航数字政府建设,美创科技成为“数字政府建设赋能计划”成员单位