P1628 合併序列(字符串,小根堆,排序,洛谷,java)

洛谷鏈接:https://www.luogu.com.cn/problem/P1628
這道題用小根堆會比排序內存少一點,時間一樣

在這裏插入圖片描述
在這裏插入圖片描述

小根堆

import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
	
	static PriorityQueue<String> q=new PriorityQueue<String>();
	
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        
        for(int i=0;i<n;i++) {
        	String a=in.next();
        	q.offer(a);
        }
        String str=in.next();
        
        for(int i=0;i<n;i++) {
        	String s=q.peek();
        	if(s.startsWith(str)) {
        		System.out.println(q.poll());
        	}else {
        		q.poll();
        	}
        }
	} 
}

sort排序

import java.util.Arrays;
import java.util.PriorityQueue;
import java.util.Scanner;
public class Main {
	
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        String[] s=new String[n];
        
        for(int i=0;i<n;i++) {
        	s[i]=in.next();
        }
        String str=in.next();
        Arrays.sort(s);
        
        for(int i=0;i<n;i++) {
        	if(s[i].startsWith(str)) {
        		System.out.println(s[i]);
        	}
        }
	} 
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章