题解
宝库的钥匙
1 条题解
-
0
解题思路
题目告诉我们第一个字符串的长度是偶数,要把第二个字符串
b插入到第一个字符串a的正中央。正中央的位置怎么找?长度是偶数,比如长度 4,正中间就在第 2 个字符和第 3 个字符之间,即
mid = a.size() / 2 = 2。做法:
- 读入
a和b。 - 计算
mid = a.size() / 2。 - 用
substr把a切成两半:a.substr(0, mid)是前半,a.substr(mid)是后半(第二个参数省略表示一直取到末尾)。 - 拼接输出:前半 +
b+ 后半。
举例:
a = "aabb"(长度 4,mid=2),前半aa,后半bb,插入xxxx→aaxxxxbb。参考代码
// 宝库的钥匙:把第二个字符串插入到第一个字符串的正中央 #include <iostream> using namespace std; int main() { string a, b; // 第一个串长度是偶数 cin >> a >> b; // 输入两个字符串 int mid = a.size() / 2; // 正中央位置=长度的一半 // 输出:前半 + 插入串 + 后半 cout << a.substr(0, mid) << b << a.substr(mid) << endl; return 0; }复杂度分析
两个字符串长度都不超过 50。拼接就是把两串的字符按顺序输出一遍,记
a的长度为 n,b的长度为 m,时间复杂度 O(n+m),空间 O(n+m)。 - 读入
- 1