1042 Shuffling Machine
普通模拟即可,注意每一次交换牌的时候需要更新start数组(当前卡牌的顺序),而且清空ans数组(交换后的卡牌顺序)
- #include<bits/stdc++.h>
- using namespace std;
- const int N = 54;
- int start[N + 1],ans[N + 1],a[N + 1];
- char mp[5] = {'S','H','C','D','J'};
- int main() {
- int k; cin >> k;
- for(int i = 1; i <= N; i++) start[i] = i;
- for(int i = 1; i <= N; i++) cin >> a[i];
- for(int i = 1; i <= k; i++){
- for(int j = 1; j <= N; j++) ans[a[j]] = start[j];
- for(int j = 1; j <= N; j++){
- start[j] = ans[j];
- ans[j] = 0;
- }
- }
- for(int i = 1; i <= N; i++){
- char ch = mp[(start[i] - 1) / 13];
- cout << ch << (start[i]-1) % 13 + 1;
- if(i < N) printf(" ");
- }
- return 0;
- }
复制代码 1050 String Subtraction
题目大意:
题目解析:
题目的意思就是输出s1字符串每个单词(根据空格分开)的每个字符的不含有s2中的字符的字符串(每一个单词按空格分开)
只需要用map记录一下,注意判断空格,遇到空格,不能直接输出空格,需要判断s2中是否有空格,没有在输出,否则会出现格式错误。
- #include<bits/stdc++.h>
- using namespace std;
- const int N = 10010;
- map<char, int> mp; // 使用 char 作为键
- int main() {
- string s1, s2;
- getline(cin, s1); // 使用 getline 读取 string 类型的输入
- getline(cin, s2);
- // 将 s2 中的所有字符存入 map,值设为 1
- for(int i = 0; i < s2.size(); i++){
- mp[s2[i]] = 1;
- }
- // 遍历 s1 并输出不在 s2 中的字符
- for(int i = 0; i < s1.size(); i++){
- if(s1[i] == ' '){
- if(!mp[s1[i]]) cout << " "; // 如果当前字符是空格,直接输出空格
- continue; // 继续下一个字符的处理
- }
- if(!mp.count(s1[i]))
- cout << s1[i];
- }
- return 0;
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |