Sample Input:
AAABBC
122333
Sample Output:
67 1
66 2
65 3
49 1
50 2
51 3
解法:儲存後排序 or 開表格紀錄
import java.util.Scanner;
public class UVA10062 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean check = false;
while (sc.hasNext()) {
if (check)
System.out.println();
int count = 0;
int matrix[] = new int[97];
String s = sc.nextLine();
for (int i = 0; i < s.length(); i++) {
matrix[s.charAt(i) - 32]++;
count++;
}
for (int i = 1; i <= count; i++) {
for (int j = 96; j >= 0; j--) {
if (matrix[j] == i)
System.out.println((j + 32) + " " + i);
}
}
check = true;
}
sc.close();
}
}
--------------------------------------
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String m = "";
boolean check = false;
while ((m = br.readLine()) != null) {
if (check)
sb.append("\n");
matrix[] arr = new matrix[97];
for (int i = 0; i < 97; i++) {
arr[i] = new matrix(0, (char) (i + 31));
}
for (int i = 0; i < m.length(); i++) {
arr[m.charAt(i) - 31].ic_count();
}
Arrays.sort(arr);
for (int i = 0; i < arr.length; i++) {
if (arr[i].getCount() > 0) {
sb.append(arr[i].getC() + " " + arr[i].getCount() + "\n");
}
}
check = true;
}
System.out.print(sb);
}
}
class matrix implements Comparable<matrix> {
int count = 0;
char c = 0;
public matrix(int num, char temp) {
count = num;
c = temp;
}
public void ic_count() {
count++;
}
public int getC() {
return c;
}
public int getCount() {
return count;
}
@Override
public int compareTo(matrix i) {
if (count > i.getCount())
return 1;
else if (count == i.getCount()) {
if (c > i.getC())
return -1;
else
return 1;
}
return -1;
}
}