C ++中的最小字符串
假设我们有两个长度相同的字符串s和t,并且都用小写字母表示。考虑我们首先将s重新排列为任意顺序,然后计算将s转换为t所需的最小更改数。
因此,如果输入就像s=“eccynue”,t=“science”,那么输出将为2,就好像我们将“eccynue”重新排列为“yccence”一样,然后将y替换为s,将第二个c替换为i,它将是“科学”。
为了解决这个问题,我们将遵循以下步骤-
ret:=0
定义两个数组cnt1保持s的频率,定义cnt2保持t的频率
对于初始化i:=0,当i<26时,更新(将i增加1),执行-
ret:=ret+max(cnt1[i]-cnt2[i],0)
返回ret
让我们看下面的实现以更好地理解-
示例
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int solve(string s, string t) {
int ret = 0;
vector <int> cnt1(26);
vector <int> cnt2(26);
for(int i = 0; i < s.size(); i++){
cnt1[s[i] - 'a']++;
}
for(int i = 0; i < t.size(); i++){
cnt2[t[i] - 'a']++;
}
for(int i = 0; i < 26; i++){
ret += max(cnt1[i] - cnt2[i], 0);
}
return ret;
}
};
int main(){
Solution ob;
cout << (ob.solve("eccynue", "science"));
}输入项
"eccynue", "science"
输出结果
2
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短