39 条题解
-
1
hihihi,雾来~~~
#include <iostream> #include <string> using namespace std; void swapHalves(string& cards){ int n = cards.size(); int half = n / 2; for (int i = 0; i < half; i++){ swap(cards[i], cards[i + half]); } } int main(){ string cards; cin >> cards; swapHalves(cards); cout << cards << endl; return 0; }
-
1
-题目回顾-
桌子上有n纸张牌排成一行(n一定是偶数),每张牌上都印着一个大写字母,请你编写程序,把前一半纸牌和后一半纸牌互换。
比如,假设有四张纸牌ABCD,那么互换后的结果是CDAB。
实际上就是要求把长度为n的字符串从中间斩开,然后把前面的拼到后面
所以就可以用
substr(a, b)
函数 AC代码如下:#include <bits/stdc++.h>//by AGOMG using namespace std; string s, s1, s2; int n;//定义全局变量,我习惯在这里定义,看个人喜好 int main() { cin >> s; n = s.size() / 2;//切割长度 s1 = s.substr(0, n);//回顾:substr()函数前一个数字表示切割开始的下标,后一个数字表示切割长度 s2 = s.substr(n, n); cout << s2 << s1 << endl;//输出 }
-
0
题目要求将给定字符串的前一半和后一半进行互换。为了实现这个操作,我们可以定义一个函数
swapHalves
,该函数接受一个字符串作为参数,并通过交换前一半和后一半的字符实现纸牌的互换。在函数内部,我们首先计算字符串的长度
n
,然后找到中间位置half
,即前一半的末尾位置。接下来,我们使用一个循环遍历前一半的字符,并将每个字符与后一半对应位置的字符进行交换,实现互换操作。在
main
函数中,我们首先读取输入的纸牌字符串cards
。然后,我们调用swapHalves
函数,将其传入纸牌字符串进行互换操作。最后,我们输出互换后的结果。这样,我们就完成了题目要求的操作,将给定字符串的前一半和后一半进行互换,并输出互换后的结果。
代码如下
#include <iostream> #include <string> using namespace std; void swapHalves(string& cards) { int n = cards.size(); int half = n / 2; for (int i = 0; i < half; i++) { swap(cards[i], cards[i + half]); } } int main() { string cards; cin >> cards; swapHalves(cards); cout << cards << endl; return 0; }
-
0
#include <bits/stdc++.h> using namespace std; int main(){ string s; cin >> s; int mid = s.length() / 2; string front = "", back = ""; for (int i = 0; i < mid; i ++) front += s[i]; for (int i = mid; i < s.length(); i ++) back += s[i]; cout << back << front; return 0; }
棍子战术,没有人代码行数比我少!
-
0
P1004 洗牌
题目描述
桌子上有n纸张牌排成一行(n一定是偶数),每张牌上都印着一个大写字母,请你编写程序,把前一半纸牌和后一半纸牌互换。
比如,假设有四张纸牌ABCD,那么互换后的结果是CDAB。
首先,“把前一半纸牌和后一半纸牌互换”这里可以使用
substr
函数,获取后一半和前一半的子串。前面的是s.substr(0, n / 2)
,后面的就是s.substr(n / 2, n / 2)
。(这里求长度可用
s.length()
或s.size
)
参考代码
#include <iostream>//hetao3097453 using namespace std; int main() { string s; cin >> s; int n = s.size(); string s1 = s.substr(0,n / 2); string s2 = s.substr(n / 2,n / 2); cout << s2 << s1 << endl; return 0; }
注意:
1.输出顺序
2.函数格式
hetao3097453(bililili @ 一钩出站)
2023年3月10日
信息
- ID
- 8
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 4825
- 已通过
- 2137
- 上传者