两种排序方法(直接判断)

题目描述

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

输入描述:

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

输出描述:

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

示例1

输入

3
a
aa
bbb

输出

both
 1 import java.util.ArrayList;
 2 import java.util.List;
 3 import java.util.Scanner;
 4
 5 public class Main {
 6 static public int n ;
 7 static public String[] strs = {"a","aa","bbb"};
 8 static public Boolean lengths = true;
 9 static public Boolean lexicographically = true;
10 static public String f() {
11     for (int i = 1; i < strs.length; i++) {
12
13         if (lengths) {
14             if (strs[i].length()<strs[i-1].length()) {
15                 lengths = false;
16             }
17         }
18         if (lexicographically) {
19             if (strs[i].compareTo(strs[i-1])<0) {
20                 lexicographically = false;
21             }
22         }
23         if (!lengths&&!lexicographically) {
24             return "none";
25         }
26
27     }
28     if (lengths&&lexicographically) {
29         return "both";
30     }
31     if (lengths&&!lexicographically) {
32         return "lengths";
33     }
34     if (!lengths&&lexicographically) {
35         return "lexicographically";
36     }
37     return null;
38 }
39
40 public static void main(String[] args) {
41     Scanner sc = new Scanner(System.in);
42     n = Integer.parseInt(sc.nextLine().trim());
43     strs = new String[n];
44     for (int i = 0; i < n; i++) {
45         strs[i] = sc.nextLine();
46     }
47
48     System.out.println(f());
49 }
50 }

原文地址:https://www.cnblogs.com/the-wang/p/8979395.html

时间: 2024-12-14 12:28:15

两种排序方法(直接判断)的相关文章

两种排序方法 网易2017内推编程题

考拉有n个字符串字符串,任意两个字符串长度都是不同的.考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序.例如: "car" < "carriage" < "cats" < "doggies < "koala" 2.根据字符串的长度排序.例如: "car" < "cats" < "koala" < &

java-实现两种排序方法

/*对给定数组进行排序{5,7,2,8,9,1,3,4} */class ArrayTest2{/*选择排序内循环结束一次,最值出现在头角标位置上*/public static void SelectSort(int[] arr){for(int x=0;x<arr.length-1;x++){for(int y=1+x;y<arr.length;y++){if(arr[x]>arr[y]){/*int temp=arr[x];arr[x]=arr[y];arr[y]=temp;*/sw

两种排序方法(选择排序和冒泡排序)

static void Main(string[] args)        {                        var arr = new int[] { 2, 8, 5, 1, 9, 9, 7, 7, 25, 35, 20 };            Sort1(arr);            foreach (var item in arr)            {                Console.WriteLine(item); } var arr2 =

[编程题] 两种排序方法

小易喜欢的单词具有以下特性:1.单词每个字母都是大写字母2.单词没有连续相等的字母3.单词没有形如“xyxy”(这里的x,y指的都是字母,并且可以相同)这样的子序列,子序列可能不连续.例如:小易不喜欢"ABBA",因为这里有两个连续的'B'小易不喜欢"THETXH",因为这里包含子序列"THTH"小易不喜欢"ABACADA",因为这里包含子序列"AAAA"小易喜欢"A","AB

算法—比较两种排序算法:选择排序和插入排序

现在我们已经实现了两种排序算法,我们很自然地想知道选择排序和插入排序哪种更快.这里我们第一次用实践说明我们解决这个问题的办法. 性质:对于随机排序的无重复主键的数组,插入排序和选择排序的运行时间是平方级别的,两者之比应该是一个较小的常数. 例证:这个结论在过去的半个世纪中已经在许多不同类型的计算机上经过了验证.在1980年本书第一版完成之时插入排序就比选择排序快一倍,现在仍然是这样,尽管那时这些算法将10万条数据排序需要几个小时而现在只需要几秒钟.在你的计算机上插入排序也比选择排序快一些吗?可以

java List递归排序,无序的列表按照父级关系进行排序(两种排序类型)

当有一个List列表是无序的,List中的数据有parentid进行关联,通过java排序成两种排序类型: 所用的测试列表最顶级无parentid,若为特殊值,修改下判断方法即可. 第一种排序:按照树结构进行排序 排序前:122,13,121,1,131,12,132...无序的[TestSort [id=122, name=三级b, parentid=12], TestSort [id=13, name=二级b, parentid=1], TestSort [id=121, name=三级a,

基于Apache+Tomcat负载均衡的两种实现方法

Apache+Tomcat实现负载均衡的两种实现方法 如果我们将工作在不同平台的apache能够实现彼此间的高效通信,因此它需要一种底层机制来实现--叫做apr Apr的主要目的就是为了其能够让apache工作在不同的平台上,但在linux上安装apache的时候通常都是默认安装的 [[email protected] ~]#rpm -qi aprName                 :apr                                        Relocation

OGG的Director web hang住的两种解决方法

OGG的Director web hang住的两种解决方法: OGG的Director web hang住的解释:是指web界面能登陆进去,但是看得刷新日期是很久之前的日期,并且该日期不变化. OGG的Director web hang住 的情况之一: 参考如下的mos文章: Director web displaying "Error 500-Internal Server Error". Domain log has Cannot open paging store. (Doc I

HashMap的两种排序方式

Map<String, Integer> map = new HashMap<String, Integer>(); map.put("d", 2); map.put("c", 1); map.put("b", 1); map.put("a", 3); List<Map.Entry<String, Integer>> infoIds = new ArrayList<Map.