AcWing 14. LeetCode 1737. 满足三条件之一需改变的最少字符数
原题链接
中等
作者:
大瓜娃子
,
2021-02-08 10:58:41
,
所有人可见
,
阅读 375
class Solution {
public:
int func0(int idx,string& a,string& b)
{
int cnt=0;
for(int i=0;i<a.length();i++)
{
if(a[i]-'a'!=idx) cnt++;
}
for(int i=0;i<b.length();i++)
{
if(b[i]-'a'!=idx) cnt++;
}
return cnt;
}
int func1(int idx,string& a,string& b)
{
int cnt=0;
for(int i=0;i<a.length();i++)
{
if(a[i]-'a'>idx) cnt++;
}
for(int i=0;i<b.length();i++)
{
if(b[i]-'a'<=idx) cnt++;
}
return cnt;
}
int minCharacters(string a, string b) {
int ret=1e8;
//a==b,a[i]==ch,b[i]==ch
for(int i=0;i<26;i++)
{
int ans=func0(i,a,b);
ret=min(ans,ret);
}
//a<b,a>b 枚举分界限字符 a[i]<=ch,b[i]>ch
for(int i=0;i<25;i++)
{
int ans=func1(i,a,b);
ret=min(ans,ret);
ans=func1(i,b,a);
ret=min(ans,ret);
}
return ret;
}
};
走错片场了?