1185 城市名排序

1185 城市名排序

Time Limit : 2000/1000 MS(Java/Others) | Memory Limit :65536/32768 KB(Java/Others)

Submits : 3989 | Solved : 2049

Description

从键盘输入n个城市名,进行升序排序并输出。

Input

 
  

第一行输入一个整数n,表示有n个城市,n不超过100。

接着输入n个字符串,每个字符串代表一个城市名,一个字符串内部不包含空格,字符串长度不超过100。


Output

输出排序后的城市名字。每个城市名占据一行。

Sample Input

10
nignbo
hangzhou
quzhou
fuyang
shaoxing
ninghai
lishui
weinan
fujian
guangzhou

Sample Output

fujian
fuyang
guangzhou
hangzhou
lishui
ningbo
ninghai
quzhou
shaoxing
weinan

HINT

 
  

Source

NBU OJ
第一种方法:重写set中的方法(朋友写的方法)
 
  
package com.tjrac_java_2;

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

public class test3 {
    public static void main(String[] args) {
        TreeSet tree=new TreeSet();
        Scanner sc=new Scanner(System.in);
        int sum=sc.nextInt();
        for (int i = 0; i < sum; i++) {
            City city=new City();
            city.setName(sc.next());
            tree.add(city);
        }
        sc.close();
        for (City city:tree) {
            System.out.println(city.getName());
        }
    }
}
class City implements Comparable{
    private String name;

    public void setName(String name){
        this.name=name;
    }

    public String getName(){
        return this.name;
    }
    @Override
    public int compareTo(Object o) {
        City city=(City) o;
        if(this.name.hashCode()==city.name.hashCode()){
            return -1;
        }
        return this.name.compareTo(city.name);
    }
}


第二种方法:利用排序算法每个字符串进行比较
 
  
package com.test;


import java.util.Scanner;

public class test3 {
	private static Scanner sc;

	public static void main(String[] args){
		sc = new Scanner(System.in);
		int s=sc.nextInt();
		String str[]=new String[1000];
		for(int i=0;i0){
					String cc=null;
					cc=str[i];
					str[i]=str[j];
					str[j]=cc;
				}
			}
		}
		for(int i=0;i


你可能感兴趣的:(-----ACM水题-----,ACM算法入门)