2 条题解
-
0
J1B What beats RiOI
思路
RiOI
这个字符串较短,打表出每一种可能的大小写情况,遍历时用find
函数判断即可。复杂度
令 为字符串 的长度。
时间复杂度:
空间复杂度:
Code
#include <bits/stdc++.h> using namespace std; int pd(string a) { string b[105] = {"rioi","Rioi","rIoi","riOi","rioI","RIoi","RiOi","RioI","rIOi","rIoI","riOI","RIOi","rIOI","RIoI","RiOI","RIOI"}; for (int i = 0;i < 15;i++) { if (a.find(b[i]) != -1) return 1; } return 0; } int main() { string a,b; cin >> a >> b; int x = pd(a),y = pd(b); if (x && y) cout << "Either is ok!"; else if (x) cout << a << " for sure!"; else if (y) cout << b << " for sure!"; else cout << "Try again!"; return 0; }
-
-1
STL 题解
思路
模拟即可。
解题方法
有一种东西,它叫 STL。有一种方法,它叫 string,有一种函数,它叫 find()。
find(const string s) 函数可以在字符串当中找到 s 第一次出现的位置,没有出现则返回 。
只需要处理好大小写就可以了。
复杂度
时间复杂度:
空间复杂度:
Code
#include <bits/stdc++.h> using namespace std; string s,t,q,p; int main(){ cin >> s >> t; int n = s.length(),m = t.length(); q = s,p = t;// q 和 p 分别存储他们没有转换下的原始字符串。 for(int i = 0;i < n;i++){ if(s[i] <= 'Z' && s[i] >= 'A') s[i] += 32; } for(int i = 0;i < m;i++){ if(t[i] <= 'Z' && t[i] >= 'A') t[i] += 32; } // x 代表 S 是否出现 rioi , y 代表 T 是否出现 rioi bool x = (s.find("rioi") == -1 ? 0 : 1),y = (t.find("rioi") == -1 ? 0 : 1); if(x && y){ cout << "Either is ok!\n"; }else if(!x && !y){ cout << "Try again!\n"; }else if(x){ cout << q << " for sure!\n"; }else{ cout << p << " for sure!\n"; } return 0; }
- 1
信息
- ID
- 47
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- 递交数
- 274
- 已通过
- 204
- 上传者