2014-10-17 75 views
-5

編寫一個java程序,根據它們的權重以降序對字符串數組進行排序。字符串的 重量可以通過以下方式 信A計算有重量1和字母一個有重量-1 .Likewise信Z有重量26和信z-26按java排序的字符串重量

所以串Java的重量將是-14。(J = 10,A = -1,V = -22,α= -1) 降序基於重量順序陣列因此排序。

樣品輸入:

3 
Python Java HTML 

樣本輸出:

Java Python HTML 

注意兩個字符串具有相同的權重,然後打印其首次進入陣列

+3

你到目前爲止做了什麼,爲什麼它不起作用?此外,這是一個作業相關的問題? – Simon 2014-10-17 06:34:12

+0

我是一個初學者,我試過但coudnt能夠得到的邏輯.. – Beginer 2014-10-17 06:35:58

+5

這個問題似乎是脫離主題,因爲它是一個「給我代碼」的問題。 – 2014-10-17 06:41:22

回答

3

Java中的一個是一個對象面向對象的語言,所以使用它。此外,它顯然是你的功課,你沒有做任何事情,所以我只是要去給你一個提示:

create an object with Strings, their weights and their position in the array. 

sort objects bases on their weights and, for equal weight, position in array. 

print sorted objects Strings. 
+1

+1通過將問題分解成更小的問題來提供提示。 – Simon 2014-10-17 06:40:49

0

你的任務是

  1. 閱讀所有給出的數據並將其放入適當的集合
  2. 集合集合。在面向對象的語言如Java,我們通常實行Comparator
  3. 輸出結果:的foreach循環是一個更好的事情做

骨架可能是類似的東西:

// Comparer to implement your algorithm of comparing two strings 
class MyComparer implements Comparator<String> { 
    @Override 
    public int compare(String left, String right) { 
    //TODO: return -1 if left < right; 0 if left == right and 1 if left > right 
    } 
} 

... 

// Stage 1: 
ArrayList<String> items = new ArrayList<String>(); 

//TODO: put user input into the collection 

// Stage 2: 
Collections.sort(items, new MyComparer()); 

// Stage 3: 
for(String item: items) { 
    //TODO: Print out item in a right format  
}