字串的连接最长路径查找(使用TreeSet集合的比较器new Comparator(){ }:匿名内部类方法)

该博客探讨如何利用TreeSet集合配合自定义比较器寻找字符串连接的最长路径,确保字典序且不重复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照字符串的字典顺序比较,且不去重


import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {

	/*

import java.util.Comparator;
import java.util.Scanner;
import java.util.TreeSet;

public class Main {

	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		
		while(sc.hasNext()) {
			int n=Integer.parseInt(sc.nextLine());
			
			TreeSet<String> ts = new TreeSet<>(new Comparator<String>() {

				public int compare(String s1, String s2) {
					int num = s1.compareTo(s2);					//比较内容为主要条件
					return num == 0 ? 1 : num;					//保留重复
				}
			});
			
			int i=0;
			while(i<n) {
				ts.add(sc.nextLine());
				i++;
			}
			
			for (String string : ts) {
				System.out.println(string);
			}
		}
	}

}
*/
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in); 
		while(sc.hasNext()) {
			int n=Integer.parseInt(sc.nextLine());
			TreeSet<String> ts=new TreeSet<String> (new Comparator<String>(){

				@Override
				public int compare(String o1, String o2) {
					int num=o1.compareTo(o2);
					return num==0?1:num; //不去重
					//return num;  不保留重复 用例只通过60%
				}
				
			});
			
			int i=0;
			while(i<n){
				ts.add(sc.nextLine());
				i++;
			}
			
			for (String string : ts) {
				System.out.println(string);
			}
		}

	}

}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值