首页 > 编程语言 >PTA JAVA 7-5 sdust-Java-字符串集合求并集

PTA JAVA 7-5 sdust-Java-字符串集合求并集

时间:2024-06-17 12:32:38浏览次数:31  
标签:Java String s3 s2 s1 PTA sdust 字符串 new

7-5 sdust-Java-字符串集合求并集

分数 20

全屏浏览

切换布局

作者 张峰

单位 山东科技大学

从键盘接收N个英文字符串(其中不同的字符串数量大于10),从头开始取5个不同的字符串放入一个集合S1,然后接着取5个不同的字符串放入另一个集合S2,按照字母顺序输出S1和S2的并集中的每个字符串(字符串区分大小写)

输入格式:

一行以空格分开的英文字符串(不同的字符串数量大于10)。

输出格式:

按照字母顺序(先比较字符串首字母,首字母相同的比较字符串第二个字母,以此类推)输出的S1和S2并集的字符串。

输入样例:

android python java javaee javase database java jsp servlet java algorithm junit

输出样例:

algorithm
android
database
java
javaee
javase
jsp
python
servlet

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

import java.util.*;
public class Main{
	public static void main(String[] args) {
		Scanner scan=new Scanner(System.in);
		Set<String> s1=new HashSet<>();
		Set<String> s2=new HashSet<>();
        //这里是定义了两个Set类型的空的字符串;Set类型,当我们填入的时候,他会自动的将重复的数据中多余的删去;在此处定义方便我们后续的填入;
		while(s1.size()<5) {
			s1.add(scan.next());
		}
        //这里是进行字符串填入,while括号里表示的是填入的数据个数,这里表示的是最多填入5个不相同的数据就会结束;下面也一样;
		while(s2.size()<5) {
			s2.add(scan.next());
		}
		Set<String> s3=new HashSet<>();
        //这里我们是创建第三个空的字符串,为了方便我们求两个集合的并集
		for(String i:s1) {
			s3.add(i);
		}
		for(String i:s2) {
			s3.add(i);
		}
        //这里一样,利用for-each循环,不用利用下标将我们之前整合的两个集合填入这个集合中去,又因为Set类型的关系,两个集合中多余的重复数据也会被自动删除,这样我们就得到了一个没有重复数据的集合,接下来进行排序;
		String[] arr=new String[s3.size()];
        //这里是创建了一个新的字符串数组,长度大小和s3一样;方便我们后续的排序;
		int t=0;
		for(String i:s3) {
			arr[t++]=i;
		}
        //这里是我们将s3中的数据一一对应的填入我们新建的字符串数组中去;
		Arrays.sort(arr,new imt());
        //这里是我们自己新建的一个排序方式
		for(int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
	}
}
class imt implements Comparator<String>{
	public int compare(String s1,String s2) {
		return s1.compareTo(s2);
	}
    //这里我们应用了comparator接口,后使用了compareto方法排序,这个方法会返回三个数值,-1,1,0;分别表示的是s1比s2小,按从小到大的排序会排在s2的前面;s1比s2大,按从小到大的排序会排在s2的后面;s1和s2相等,按从小到大的排序二者位置不变;
}

 

标签:Java,String,s3,s2,s1,PTA,sdust,字符串,new
From: https://blog.csdn.net/2303_81795561/article/details/139691984

相关文章

  • PTA 7-6 手机按价格排序、查找
    编写手机类(MobilePhone),含有type(型号,String类型)、price(价格,int类型)属性,要求该类实现Comparable接口,重写compareTo方法,实现按照price的大小来确定两个手机对象的大小关系。在链表中添加三个手机对象(从键盘输入),通过Collections类的sort方法对链表中的对象按照price升序排序。输入......
  • PTA 7-2 将一整个正整数的所有位重新排序,组成一个最大数
    7-2将一整个正整数的所有位重新排序,组成一个最大数分数20importjava.util.*;publicclassMain{ publicstaticvoidmain(String[]args){ Scannerscan=newScanner(System.in); Stringarr=scan.nextLine();//输入一个字符串 char[]arr1=arr.toChar......
  • PTA 7-5 打印双休日
    7-5打印双休日分数20全屏浏览切换布局作者 温彦单位 山东科技大学输入年份和月份,打印当月所有双休日日期,打印格式为:“2018-06-16”输入格式:年份和月份输出格式:双休日日期输入样例:在这里给出一组输入。例如:20186输出样例:在这里给出相应的输出。例如:......
  • java从入门到精通
    java从入门到精通1.进制转换1.1二进制和十进制1.2八进制packagecom.itheima.variable;publicclassASCIIDemo1{publicstaticvoidmain(String[]args){//目标:掌握ASCII编码表的编码特点。System.out.println('a'+10);//97+10=10......
  • Java常见面试题分享-用Java实现LIS(最长递增子序列)算法
    问题描述编写一个函数,该函数接受一个整数列表作为参数,计算这个列表的最长递增子序列(LIS)的长度,这个也是动态规划中常见的问题。举一个典型的场景:用来查找股票价格的最大增长,比如股票价格是[12,13,11,14,15,16,10,9,8,7],股票价格的最大增长是[12,13,14,15,......
  • 持续性学习-Day18(JavaWeb)
    JavaWeb1、基本概念web开发:web,表示可以从互联网上拿到一定的资源静态webhtml、css提供给所有人看的数据,始终不会发生变化动态web每个人在不同时间、不同地点,看到的信息各不相同技术栈:servlet/JSP、ASP、PHP在Java中,动态web资源开发的计数统称为Java......
  • JavaScript 面试问题及答案
    什么是JavaScript模块?答: JavaScript模块是可重复使用的代码片段,可以在文件之间导入和导出,从而提高模块化和可维护性。解释原型链的概念。答:原型链是JavaScript中的一项功能,它允许对象通过原型链从其他对象继承属性和方法。什么是高阶函数?答:高阶函数是可以将其他函数作......
  • 将本地jar引入到java工程中的三种方式
    方式一、IDEA->File->ProjectStructure->Modules->Dependencies->+->JARsorDirectories方式二、如要添加的jar文件较多,可创建目录,例:resources->libs,然后用方式一,选择此目录。方式三、如果项目是maven工程,可以通过修改pom文件,将本地jar引用工程中,如下所示<depende......
  • 高级前端的 25 个常用 JavaScript 单行代码
    1.不使用临时变量来交换变量的值例如我们想要将 a 于 b 的值交换leta=1,b=2;//交换值[a,b]=[b,a];//结果:a=2,b=1这行代码使用数组解构赋值的方式来交换两个变量的值,无需定义新的临时变量。这个巧妙的技巧可让代码看起来更简洁明了。语法[a,b......
  • Java的I/O模型
    Java的I/O发展简史从JDK1.0到JDK1.3,Java的I/O类库都非常原始,很多UNIX网络编程中的概念或者接口在I/O类库中都没有体现,比如Pipe、Channel、Buffer和Selector等。2002年发布JDK1.4时,NIO以JSR-51的身份正式随JDK发布。它新增加了java.nio包,提供了很多进行异步I/O开发的API和类库......