题目地址:
https://www.acwing.com/problem/content/775/
有两个不包含空白字符的字符串str
和substr
,str
的字符个数不超过
10
10
10,substr
的字符个数为
3
3
3。(字符个数不包括字符串结尾处的 \0
。)将substr
插入到str
中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
输入格式:
输入包括若干行,每一行为一组测试数据,格式为str substr
输出格式:
对于每一组测试数据,输出插入之后的字符串。
代码如下:
#include <iostream>
using namespace std;
int main() {
string s, p;
while (cin >> s >> p) {
char ch = 0;
int idx = 0;
for (int i = 0; i < s.size(); i++)
if (s[i] > ch) ch = s[i], idx = i;
for (int i = 0; i < s.size(); i++) {
cout << s[i];
if (i == idx) cout << p;
}
puts("");
}
return 0;
}
时间复杂度
O
(
l
s
+
l
p
)
O(l_s+l_p)
O(ls+lp),
s
s
s是str
,
p
p
p是substr
,空间
O
(
1
)
O(1)
O(1)。