牛客網 兩種排序
阿新 • • 發佈:2018-12-24
由於題目比較簡單,主要是對排序的應用,演算法思路基本是算是清晰。
1 import java.io.BufferedReader; 2 import java.io.IOException; 3 import java.io.InputStreamReader; 4 /********* 牛客網--兩種排序 **********/ 5 import java.util.Arrays; 6 7 public class Demo7{ 8 9 10 public static void main(String[] args) throwsNumberFormatException, IOException{ 11 12 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 13 int n = Integer.parseInt(br.readLine()); 14 boolean dectionary_flag = true;//字典排序標記 15 boolean length_flag = true; //長度排序標記 16 String[] ss = newString[n]; //輸入的字串陣列 17 int[] s = new int[n]; //對應字串陣列的每個字元床的長度陣列 18 for(int i = 0; i < n; i++){ //輸入 19 ss[i] = br.readLine(); 20 s[i] = ss[i].length(); 21 } 22 23 String[] ss1 = ss.clone(); //複製一個數組ss1,保留ss陣列的原始狀態 24int[] s1 = s.clone(); //複製一個數組s1 , 保留s陣列的原始狀態 25 Arrays.sort(ss); //對ss陣列進行字典排序 26 Arrays.sort(s); //對s陣列升序排序 27 for(int i = 0; i < n; i++){ /* 判斷原始陣列是否為字典排序*/ 28 if(!ss1[i].equals(ss[i])) { 29 dectionary_flag = false; 30 break; 31 } 32 } 33 for(int i = 0; i < n; i++){/*判斷原始陣列是否為長度排序*/ 34 if(s1[i] != s[i]) { 35 length_flag = false; 36 break; 37 } 38 } 39 /*輸出*/ 40 if(dectionary_flag && length_flag) { 41 System.out.println("both"); 42 }else if(dectionary_flag){ 43 System.out.println("lexicographically"); 44 }else if(length_flag) { 45 System.out.println("lengths"); 46 }else { 47 System.out.println("none"); 48 } 49 50 } 51 }