题解 | #多多的字符变换#

多多的字符变换

http://www.nowcoder.com/questionTerminal/78255f37c7dc4f749ceafc8c58206a43

这个题目我一开始想复杂了,我想着计算两个字符串出现的字符个数,然后对个数作差,这其实是错误的解,因为自己和自己是无法相消的。
仔细再看了下题目,原来只要对字符排个序就行了,因为从下到达排序,对应位置相减,就一定可以得到最小的差和。至于怎么证明的,我这里简单说一下:
alt

#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;

int main() {
    int n;
    cin >> n;
    char* s1 = new char[n];
    char* s2 = new char[n];
    scanf("%s%s", s1, s2);
    sort(s1, s1 + n);
    sort(s2, s2 + n);
    int sum = 0;
    for(int i = 0; i < n; i++) {
        sum += abs(s1[i] - s2[i]);
    }
    cout << sum << endl;
    return 0;
}

alt

全部评论

相关推荐

点赞 评论 收藏
分享
zhch7:建议9✌️把学历加黑加粗,如果实在offer可能是觉得佬不会去
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务