题解 | 小红的字符串修改

小红的字符串修改

https://www.nowcoder.com/practice/66e0054ff6b345afa47bcd4e8ceb72d7

C++ 题中只能把其中一个任意一个字母替换成其在字母表中相邻的字母,所以不是计算最长相同子串的问题

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s, t;
    cin >> s >> t;
    int min_cnt=25000;
    string sub;
    for (int i=0; i<=t.size()-s.size(); i++) { // 遍历t
        int cnt=0;
        for (int j=0; j<s.size(); j++) { // 把s转换为t的子串
            int diff = t[i+j]>s[j] ? (t[i+j]-s[j]) : (s[j]-t[i+j]);
            cnt += min(diff, 26-diff); // 和 mod25 的结果不一样
            // cout << t[i+j] << ' ' << s[j] << ' ' << cnt << endl;
            if (cnt > min_cnt) break;              
        }
        if (cnt < min_cnt) min_cnt = cnt;
    }
    // 把其中一个任意一个字母替换成其在字母表中相邻的字母
    // 不是直接一次能改的,z->x 需要2次(z->y->x)
    // 可用Ascii码计算得到
    cout << min_cnt << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论
考虑南京OD的宝子们看过来,你就是我们要找的人,一对一指导,可私信
点赞 回复 分享
发布于 08-13 20:51 贵州

相关推荐

不愿透露姓名的神秘牛友
08-19 10:15
点赞 评论 收藏
分享
07-09 20:50
门头沟学院 Java
码农索隆:1.教育背景和荣誉证书合二为一。 2.获奖项目理一遍,你做了什么,对你求职的岗位有什么帮助,没有就删掉。 3.技能特长和教育背景交换位置。 4.技能特长写的太差,上网上找简历参考。都不用问你别的,一个redis就能把你问住,写写你具体会redis哪些方面的知识。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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