首页 > 试题广场 >

后缀子串排序

[编程题]后缀子串排序
  • 热度指数:13889 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
对于一个字符串,将其后缀子串进行排序,例如grain 其子串有: grain rain ain in n 然后对各子串按字典顺序排序,即: ain,grain,in,n,rain

输入描述:
每个案例为一行字符串。


输出描述:
将子串排序输出
示例1

输入

grain

输出

ain
grain
in
n
rain
Java 解法
import java.util.Scanner;
import java.util.TreeSet;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        TreeSet<String> set = new TreeSet<>();
        String s = scanner.next();
        for (int i = 0; i < s.length(); i++)
            set.add(s.substring(i));
        for (String s1 : set)
            System.out.println(s1);
    }
}


发表于 2020-03-07 21:37:08 回复(0)

import java.util.Arrays;
import java.util.Scanner;

/**

  • Created by Administrator on 2017/4/25.
    */
    public class Main {
    public static String[] sortSubString(String s){
     String [] result=new String[s.length()];
     for (int i=0;i<s.length();i++)
         result[i]=s.substring(i);
     Arrays.sort(result);
     return  result;
    
    }
    public static void main(String[]args){
     Scanner scanner=new Scanner(System.in);
     while (scanner.hasNext()){
         String s=scanner.nextLine();
         String []result=sortSubString(s);
         for (String ss:result) {
             System.out.print(ss+" ");
         }
     }
    
    }
    }
编辑于 2017-04-25 10:31:53 回复(0)

问题信息

难度:
2条回答 12622浏览

热门推荐

通过挑战的用户

查看代码