网易笔试编程题——两种排序方法

来源:互联网 发布:刘德华 知乎 编辑:程序博客网 时间:2024/05/16 00:53

题目描述

考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:
"car" < "carriage" < "cats" < "doggies < "koala"
2.根据字符串的长度排序。例如:
"car" < "cats" < "koala" < "doggies" < "carriage"
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。

输入描述:

输入第一行为字符串个数n(n ≤ 100)接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成

输出描述:

如果这些字符串是根据字典序排列而不是根据长度排列输出"lexicographically",如果根据长度排列而不是字典序排列输出"lengths",如果两种方式都符合输出"both",否则输出"none"
示例1

输入

3aaabbb

输出

both
function sort1(array){    return array.sort();}function sort2(array){    return array.sort(function(a,b){        var l1 = a.length;        var l2 = b.length;        if(l1 < l2){            return -1;        }else if(l1 == l2){            return 0;        }else{            return 1;        }    });}function same(arr1,arr2){    for(var i=0;i<arr1.length;i++){        if(arr1[i]!=arr2[i]){            return false;        }    }    return true;}while(n = readline()){    var base = new Array();    var arr = new Array();    for(var i=0;i<n;i++){        var line = readline();        base.push(line.toLowerCase());        arr.push(line.toLowerCase());    }    var result1 = same(base,sort1(arr));    var result2 = same(base,sort2(arr));    if(result1&&result2){        print("both");    }else if(result1&&!result2){        print("lexicographically");    }else if(!result1&&result2){        print("lengths");    }else{        print("none");    }}


原创粉丝点击