Westlake OI R1A 题解
A. String Minimization
本题涉及的主要知识点:
- 【2】字符串
- 【3】贪心法
题意分析
题目要在
不难发现
总而言之:
- 若
a_i<c_i ,则不能对i 操作。 - 若
a_i>c_i ,则必须对i 操作。 - 若
a_i=c_i ,则是否操作都可以。
接下来考虑最小化
总之,若
参考程序
以下为 C++ 参考代码:
#include<bits/stdc++.h>
using namespace std;
int n;
string a,b,c,d;
int main(){
cin>>n>>a>>b>>c>>d;
for(int i=0;i<n;i++)
if(a[i]>c[i] || a[i]==c[i] && b[i]>d[i])
b[i]=d[i];
cout<<b<<endl;
return 0;
}
以下为 Python 3 参考代码。注意 Python 的字符串不能原地修改,必须转化成列表。
n=int(input())
a=input()
b=list(input())
c=input()
d=input()
for i in range(n):
if a[i]>c[i] or a[i]==c[i] and b[i]>d[i]:
b[i]=d[i]
print("".join(b))