洛谷P4414 [COCI 2006/2007 #2] ABC

12 阅读1分钟

P4414 [COCI 2006/2007 #2] ABC

题目描述

三个整数分别为 。这三个数字不会按照这样的顺序给你,但它们始终满足条件:。为了看起来更加简洁明了,我们希望你可以按照给定的顺序重新排列它们。

输入格式

第一行包含三个正整数 ,不一定是按这个顺序。这三个数字都小于或等于 。第二行包含三个大写字母 (它们之间没有空格)表示所需的顺序。

输出格式

在一行中输出 ,用一个 ``(空格)隔开。

感谢 @smartzzh 提供的翻译

输入输出样例 #1

输入 #1

1 5 3
ABC

输出 #1

1 3 5

输入输出样例 #2

输入 #2

6 4 2
CAB

输出 #2

6 2 4

思路

两个数组一个a[]接收输入的三个数字,一个c[]接收ABC,使用JAVA的排序库对数字进行排序,对ABC进行遍历,若c[i]等于A则输出最小的a[0],等于B输出中间的a[1],等于C输出最大的a[2]。

思路优化

用c[i] - 'A'直接得到数组a[]的下标,即输出a[c[i]-'A']

代码实现

package LAN;
import java.util.*;
public class ABC {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int []a = new int[3];
		for(int i = 0; i<3; i++) {
			a[i] = sc.nextInt();
		}
		Arrays.sort(a);
		char[]c = sc.next().toCharArray();//接收ABC
		for(int i = 0; i<3;i++) {
			System.out.print(a[c[i]-'A']+" ");
		}
		
	}

}