题目地址:http://ac.jobdu.com/problem.php?pid=1419
题目描述:
现在你的导师给你了一个待排序的参考文献列表,要你排好序给他。
文献列表中每一条文献记录只占一行。排序的规则和string类型字符串的比较规则一致(在排序时如果该字符串中包含大写字母,则当作小写字母处理,保证没有相同大小的字符串,但是输出结果不能改变任一字符串),按升序排列。
输入:输入包括多组,每组输入第一行包括一个整数n,(1<=n<=200),接下来有n行,每行包括一行文献记录,文献记录的长度s(1<=s<=200)。
输出:对每组输入。输出排好序的文献记录。
样例输入:
3
abc hello!
Abc hellz!
bbc hello!
样例输出:
abc hello!
Abc hellz!
bbc hello!
字符串比较,转为小写。然后打印输出。
C++ AC
#include <stdio.h> #include <string.h> #include <string> #include<algorithm> using namespace std; const int maxn = 102; const int maxm = 202; int n,i; struct Node{ char allStr[maxm]; }nodes[maxn]; void toLowCase(char s[]){ int len = strlen(s); for(i = 0 ; i < len ; i++){ if(s[i] >= 'A' && s[i] <= 'Z'){ s[i] = s[i] - 'A' + 'a'; } } } bool cmp(Node node1, Node node2){ toLowCase(node1.allStr); toLowCase(node2.allStr); return strcmp(node1.allStr,node2.allStr) < 0; } int main(){ while(scanf("%d",&n)!=EOF) { gets(nodes[0].allStr); for(i = 0;i < n; i++){ gets(nodes[i].allStr); } sort(nodes,nodes+n,cmp); for(i = 0;i < n; i++){ puts(nodes[i].allStr); } } return 0; } /************************************************************** Problem: 1419 User: wangzhenqing Language: C++ Result: Accepted Time:90 ms Memory:1044 kb ****************************************************************/
Java AC
import java.util.Arrays; import java.util.Scanner; public class Main { /* * 1419 */ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while (scanner.hasNextLine()) { int N = Integer.parseInt(scanner.nextLine()); SortString array[] = new SortString[N]; for (int i = 0; i < N; i++) { String ab = scanner.nextLine(); SortString sortStr = new SortString(ab.toLowerCase(), ab); array[i] = sortStr; } Arrays.sort(array); for (int i = 0; i < N; i++) { System.out.println(array[i].getAllMsg()); } } } static class SortString implements Comparable<SortString>{ private String firStr; private String allMsg; public String getFirStr() { return firStr; } public void setFirStr(String firStr) { this.firStr = firStr; } public String getAllMsg() { return allMsg; } public void setAllMsg(String allMsg) { this.allMsg = allMsg; } public SortString(String firStr, String allMsg) { super(); this.firStr = firStr; this.allMsg = allMsg; } public int compareTo(SortString o) { return this.getFirStr().compareTo(o.getFirStr()); } } } /************************************************************** Problem: 1419 User: wzqwsrf Language: Java Result: Accepted Time:1450 ms Memory:30228 kb ****************************************************************/