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

多多的字符变换

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

全部评论

相关推荐

点赞 评论 收藏
分享
06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
想按时下班的大菠萝在...:隔壁学校的,加油多投, 实在不好找可以下个学期开学找,把算法八股准备好,项目有空再换换
投了多少份简历才上岸
点赞 评论 收藏
分享
今天 14:14
门头沟学院 Java
7.10投递7.15感谢信
投递地平线等公司7个岗位
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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