1. 程式人生 > 實用技巧 >字串的連結最長路徑查詢

字串的連結最長路徑查詢

題目描述

給定n個字串,請對n個字串按照字典序排列。

輸入描述:

輸入第一行為一個正整數n(1≤n≤1000),下面n行為n個字串(字串長度≤100),字串中只含有大小寫字母。

輸出描述:

資料輸出n行,輸出結果為按照字典序排列的字串。
示例1

輸入

9
cap
to
cat
card
two
too
up
boat
boot

輸出

boat
boot
cap
card
cat
to
too
two
up

思路:
1、直接Arrays.sort排序
import java.util.*;
public class Main {
   public static void
main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int n = sc.nextInt(); String [] arr = new String[n]; for(int i=0;i<n;i++){ String str = sc.next(); arr[i] = str; } Arrays.sort(arr);
for(int i=0;i<arr.length;i++){ System.out.println(arr[i]); } } } }

2、map.getOrDefault方法:Map集合中有這個key時,就使用這個key值,如果沒有就使用預設值defaultValue

Map中採用Entry內部類來表示一個對映項,對映項包含Key和Value
Map.Entry裡面包含getKey()和getValue()方法

Set<Entry<T,V>> entrySet()
該方法返回值就是這個map中各個鍵值對對映關係的集合。

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Map<String,Integer> map = new TreeMap<String,Integer>();
        int n = scanner.nextInt();
        for(int i = 0;i < n;i ++) {
            String s = scanner.next();
            map.put(s,map.getOrDefault(s, 0) + 1);
        }
        for (Map.Entry<String, Integer> entry : map.entrySet()) {
            for(int i = 0;i < entry.getValue();i ++) {
                System.out.println(entry.getKey());
            }
        }
        scanner.close();
    }
}