(直接模拟)
时间复杂度:O(n)
先找到第一个字符串中最大ASSIC码字符的位置,标记位置,然后输出第一个字符串前面的字符,输出第二个字符
接着输出后面的剩下的字符
#include<iostream>
#include<cstring>
using namespace std;
string a,b;
int main()
{
while(cin>>a>>b)
{
int ascii_max,idx=0;
ascii_max=a[0];
for(int i=1;i<a.size();i++)
if((int)a[i]>ascii_max) ascii_max = (int)a[i],idx=i;
for(int i=0;i<a.size()+b.size();i++)
{
if(i>idx && i<=idx+3) cout<<b[i-idx-1];
else if(i<=idx) cout<<a[i];
else cout<<a[i-3];
}
cout<<endl;
}
return 0;
}