-
题目地址:http://ac.jobdu.com/problem.php?pid=1099
-
对于一个字符串,将其后缀子串进行排序,例如grain
其子串有:
grain
rain
ain
in
n然后对各子串按字典顺序排序,即:
ain,grain,in,n,rain
题目描述:
-
输入:
-
每个案例为一行字符串。
-
输出:
-
将子串排序输出
-
样例输入:
-
grain
-
样例输出:
-
ain grain in n rain
-
来源:
- 2010年上海交通大学计算机研究生机试真题
- 如果对字符串操作很熟悉的话,这个题应该不是很难。
- 考察字符串截取以及字符串排序。
- C++ AC
-
#include <iostream> #include <stdlib.h> #include <string> #include <algorithm> using namespace std; int i ; int main(){ string s; while(cin>>s){ int n = s.size(); string sch[500]; for(i = 0; i < n; i++){ sch[i] = s.substr(i,n); } sort(sch,sch+n); for(i= 0;i < n; i++){ cout<<sch[i]<<endl; } } return 0; } /************************************************************** Problem: 1099 User: wangzhenqing Language: C++ Result: Accepted Time:10 ms Memory:1524 kb ****************************************************************/
Java AC
-
import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class Main { /* * 1099 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNext()) { String ab = scanner.next(); Set<String> set = new TreeSet<String>(); int length = ab.length(); for (int i = 0; i < length; i++) { set.add(ab.substring(i,length)); } for (String result :set) { System.out.println(result); } } } } /************************************************************** Problem: 1099 User: wzqwsrf Language: Java Result: Accepted Time:90 ms Memory:15524 kb ****************************************************************/