【九度】题目1419:文献排序

来源:互联网 发布:玻璃胶 白色透明知乎 编辑:程序博客网 时间:2024/04/30 20:03

题目地址: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****************************************************************/
原创粉丝点击