首页 > 编程语言 >java笔试题,寻找多出来的元素

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

时间:2023-09-08 16:02:03浏览次数:49  
标签:11 笔试 java String int 元素 异或 public 运算

题目:有两个数组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 }


标签:11,笔试,java,String,int,元素,异或,public,运算
From: https://blog.51cto.com/u_16207938/7411288

相关文章

  • java设计模式,简单工厂和抽象工厂有什么区别?
    java设计模式,简单工厂和抽象工厂有什么区别?简单工厂模式:这个模式本身很简单而且使用在业务较简单的情况下。一般用于小项目或者具体产品很少扩展的情况(这样工厂类才不用经常更改)。它由三种角色组成:工厂类角色:这是本模式的核心,含有一定的商业逻辑和判断逻辑,根据逻辑不同,产生具体的工......
  • java开发之个微机器人的二次开发
    简要描述:修改我在某群的昵称请求URL:http://域名/updateIInChatRoomNickName请求方式:POST请求头Headers:Content-Type:application/jsonAuthorization:login接口返回参数:参数名必选类型说明wId是String登录实例标识请求参数示例{"wId":"4941c159-48dc-4271-b0d0-f94adea39127",......
  • java 支持 超大上G,多附件上传实例
    ​ 这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数下面直接贴代码吧,一些难懂的我大部分都加上注释了:上传文件实体类:看得出来,实体类中已经有很多我们需要的功能了,还有实用的属性。如MD5秒传的信息。pub......
  • java正则表达式(一)
    转: https://www.cnblogs.com/-w-k-/p/16040896.html一、校验数字的表达式1数字:^[0-9]*$2n位的数字:^\d{n}$3至少n位的数字:^\d{n,}$4m-n位的数字:^\d{m,n}$5零和非零开头的数字:^(0|[1-9][0-9]*)$6非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7带......
  • Python 框架(Flask,tornado,fastAPI)Go 的gin框架 Java spring 框架中的性能对比
    使用jmeter进行压测:配置如下: Flask框架:Python代码:fromflaskimportFlaskapp=Flask(__name__)@app.route('/')defhello_world():return'Hello,World!'if__name__=='__main__':app.run(port=8080)测试结果: Tornado......
  • 无涯教程-JavaScript - IMCOSH函数
    描述IMCOSH函数以x+yi或x+yj文本格式返回复数的双曲余弦值。语法IMCOSH(inumber)争论Argument描述Required/OptionalInumberAcomplexnumberforwhichyouwantthehyperboliccosine.RequiredNotesExcel中的复数只是简单地以文本形式存储在Excel中。......
  • Sermant类隔离架构:解决JavaAgent场景类冲突的实践
    本文分享自华为云社区《Sermant类隔离架构解析——解决JavaAgent场景类冲突的实践》,作者:华为云开源。 一、JavaAgent场景为什么要注意类冲突问题?类冲突问题并非仅存在于JavaAgent场景中,在Java场景中一直都存在,该问题通常会导致运行时触发NoClassDefFoundError、ClassNotFoundExcep......
  • Java并发篇:6个必备的Java并发面试种子题目
    线程创建和生命周期线程的创建和生命周期涉及到线程的产生、执行和结束过程。让我们继续深入探索这个主题:线程的创建方式有多种,你可以选择适合你场景的方式:继承Thread类:创建一个类,继承自Thread类,并重写run()方法。通过实例化这个类的对象,并调用start()方法,系统会自动调用run()方法......
  • 通过指针变量存取一维数组元素
    通过指针变量存取一维数组元素下面展示一下。#include<stdio.h>intmain(){ inta[10],*p; for(p=a;p<a+10;p++) { scanf("%d",p); }for(p=a;p<a+10;p++) { printf("%d",*p); } printf("\n"); return0;}测试输入......
  • 无涯教程-JavaScript - IMCOS函数
    描述IMCOS函数以x+yi或x+yj文本格式返回复数的余弦。语法IMCOS(inumber)争论Argument描述Required/OptionalInumberAComplexNumberforwhichyouwantthecosine.RequiredNotesExcel中的复数仅存储为文本。当将格式为"a+bi"或"a+bj"的文本字符......