【深基3.习9】[COCI2006-2007#2] ABC · 教师题解
【深基3.习9】[COCI2006-2007#2] ABC
解题思路
升序排序三个数,使下标 0、1、2 分别代表 A、B、C。按第二行字母字符串中的顺序访问数组。
正确性说明
排序确定字母到数值的唯一对应;逐字母取值恰好得到指定排列。
易错点
第二行字母无空格;不要按原输入顺序给数命名 A、B、C。
复杂度
时间 O(1),空间 O(1)。
参考代码(C++11)
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int a[3];
cin >> a[0] >> a[1] >> a[2];
sort(a, a + 3);
string s;
cin >> s;
for (int i = 0; i < 3; i++) {
if (i)
cout << " ";
cout << a[s[i] - 'A'];
}
cout << "\n";
return 0;
}