题目要求在给定字符串中的某处插入另一字符串。
总时间限制: 1000ms 内存限制: 65536kB
有两个字符串str和substr,str的字符个数不超过10,substr的字符个数为3。(字符个数不包括字符串结尾处的'\0'。)将substr插入到str中ASCII码最大的那个字符后面,若有多个最大则只考虑第一个。
输入包括若干行,每一行为一组测试数据,格式为
str substr
对于每一组测试数据,输出插入之后的字符串。
abcab eee
12343 555
abceeeab
12345553
string类型库给出了相应的函数来在字符串中插入字符串,我们仅需从头遍历到ASCII码最大的位置即可。
#include <iostream>
#include <string>
using namespace std;
int main() {
string str, substr;
while (cin >> str >> substr) {
int i, pos = 0;
char mc = 0;
for (i = 0; i < str.length(); ++i) {
if (str[i] > mc) {
mc = str[i];
pos = i;
}
}
str.insert(pos + 1, substr);
cout << str << endl;
}
return 0;
}
2934.cpp 代码长度:328B 内存:136kB 时间:2ms 通过率:92% 最小内存:136kB 最短时间:0ms
在遍历到最大ASCII码位置时,要记录第一次的下标,通过大于号比较,使得不会再遍历到同样大小的ASCII码,插入可使用string函数insert。
有任何的改进意见欢迎大家在微信平台公众号主页面留言或者发表issue。