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

多多的字符变换

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

全部评论

相关推荐

寿命齿轮:实习就一段还拉了,项目一看就不是手搓,学历也拉了,技术栈看着倒是挺好,就是不知道面试表现能咋样。 不过现在才大三,争取搞两端大厂实习,或者一个纯个人项目+一段大厂,感觉秋招还是未来可期。
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享
牛客网
牛客企业服务