考拉有n个字符串字符串,任意两个字符串长度都是不同的。考拉最近学习到有两种字符串的排序方法: 1.根据字符串的字典序排序。例如:
“car” < “carriage” < “cats” < “doggies < “koala”
2.根据字符串的长度排序。例如:
“car” < “cats” < “koala” < “doggies” < “carriage”
考拉想知道自己的这些字符串排列顺序是否满足这两种排序方法,考拉要忙着吃树叶,所以需要你来帮忙验证。
输入描述:
输入第一行为字符串个数n(n ≤ 100)
接下来的n行,每行一个字符串,字符串长度均小于100,均由小写字母组成
输出描述:
如果这些字符串是根据字典序排列而不是根据长度排列输出”lexicographically”,
如果根据长度排列而不是字典序排列输出”lengths”,
如果两种方式都符合输出”both”,否则输出”none”
输入例子:
3
a
aa
bbb
输出例子:
both
public class Main {
//按长度排序
private static boolean check1(String[] s, int n) {
for (int i = 1; i < n; i++) {
if (s[i].length() < s[i - 1].length()) {
return false;
}
}
return true;
}
//按字典序排序
private static boolean chech2(String[] s, int n) {
for (int i = 1; i < n; i++) {
String s1 = s[i - 1];
String s2 = s[i];
if (s1.compareTo(s2) >= 0) {
return false;
}
}
return true;
}
public static void main(String[] arg) {
Scanner scan = new Scanner(System.in);
while (scan.hasNext()) {
String str = scan.nextLine();
int n = Integer.parseInt(str);
String[] s = new String[n];
for (int i = 0; i < n; i++) {
s[i] = scan.nextLine();
}
boolean flag1 = check1(s,n);
boolean flag2 = chech2(s,n);
if (flag1 && flag2) {
System.out.println("both");
}else if (flag1 && !flag2) {
System.out.println("lengths");
}else if (!flag1 && flag2){
System.out.println("lexicographically");
}else {
System.out.println("none");
}
}
scan.close();
}
}