1 条题解
-
0
题解
商店的玻璃窗上画有一个字符串,Ship 从外面正对玻璃窗看到的是字符串 ,从里面看向同一玻璃窗看到的是字符串 。由于是从背面观看,字符串发生了左右翻转,同时字符本身也因镜像而改变:'p' 的镜像看起来像 'q','q' 的镜像像 'p',而 'w' 是上下左右对称的,镜像仍为 'w'。
具体变换规则如下:
- 字符串的顺序完全颠倒:原最左字符变成最右,依次类推。
- 每个字符按照镜像规则替换:'p' 'q','q' 'p','w' 'w'。
由此,我们可以得到从 构造 的算法:
- 将字符串 反转。
- 遍历反转后的每个字符,若为 'q' 则改为 'p',若为 'p' 则改为 'q','w' 不变。
因为题目保证输入字符串仅由 'p'、'q'、'w' 组成,所以无需考虑其他情况。
算法复杂度: 每组测试数据需要 的时间进行反转和替换,总时间为 。由于 且 ,完全可以在时限内完成。
C++ 参考代码(依据标程):
#include <bits/stdc++.h> using namespace std; #define ll long long #define pll pair<ll, ll> int t; int main() { cin.tie(0)->sync_with_stdio(0); cin >> t; while (t--) { string s; cin >> s; reverse(s.begin(), s.end()); for (char &c : s) if (c == 'q') c = 'p'; else if (c == 'p') c = 'q'; cout << s << '\n'; } }
- 1
信息
- ID
- 6419
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者