1 条题解
-
0
【深基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; }
- 1