3 条题解
-
0
入门题。 观察规律,发现检测首行即可。注意条件不要写成
buf[i + 4] == '.',这样需要额外特判最后一个字母(若最后一个是v,则buf[i + 4] = '\0')#include <bits/stdc++.h> constexpr int MAXN = 1e3 + 10; char buf[MAXN]; int main() { int N; scanf("%d", &N); scanf("%s", buf); for(int i = 0, cnt = 0; i < N; ) { if(buf[i + 4] != '\\') putchar('v'), i += 5; else putchar('w'), i += 9; } } -
0
洛谷 P11751
题目大意:
给定两个字母加密方式,输出解密后的字符串。
解题思路:
按照题目模拟即可。注意,只有连续且完整的加密串有效,所以,我们手动把开头与结尾的加密串加上一个点,放便后面的判断。然后,我们只需要遍历一遍字符串,如果
s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '.'的话,cout<<'v';如果s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '\\' && s[i + 6] == '.' && s[i + 7] == '.' && s[i + 8] == '/' && s[i + 9] == '.'的话,cout<<'w'。AC 代码:
#include<bits/stdc++.h> using namespace std; int n; string s, c; int main() { cin >> n; cin >> s >> c; s = "." + s + "."; for (int i = 0; i < n; i++) { if (s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '.') { cout << 'v'; } else if (s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '\\' && s[i + 6] == '.' && s[i + 7] == '.' && s[i + 8] == '/' && s[i + 9] == '.') { cout << 'w'; } } return 0; }
- 1
信息
- ID
- 12564
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 2
- 标签
- 递交数
- 35
- 已通过
- 24
- 上传者