思路
本题就是让你求 \(a\) 字典序最小时的 \(b\),毕竟他说在 \(a\) 的字典序尽量小的前提下。接下来就做这个判断:
- 如果 \(a_i\) < \(c_i\),则 \(b_i\) 和 \(d_i\)交换。
- 如果 \(a_i\) < \(c_i\) 且 \(b_i\) > \(d_i\),则 \(b_i\) 和 \(d_i\)交换。
- 其余情况不用交换。
注意这里只用输出 \(b\),所以只用把 \(d_i\) 赋值给 \(b_i\) 即可。
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
int len;
string a,b,c,d;
cin>>len;
cin>>a>>b>>c>>d;
for(int i=0;i<len;i++){
if(a[i]>c[i]){
b[i]=d[i];
}else{
if(a[i]==c[i]&&b[i]>d[i]){
b[i]=d[i];
}
}
}
cout<<b;
return 0;
}
标签:洛谷,String,Minimization,int,题解,P10244,len,cin
From: https://www.cnblogs.com/zhouxi2022HZO/p/18592612