题解 | 小红的字符串修改

小红的字符串修改

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

import java.util.Scanner;

// KMP?字符串匹配?
public class Main {
    public static void main(String[] args) {
        //先判断长度是否一致,长度一致的话,可以从头改到尾,次数为字母之间的距离'a'-'b',主要看小+26 -大,大 - 小,长度不一致,需要
        Scanner in = new Scanner(System.in);
        String s = in.nextLine();
        String t = in.nextLine();
        int n = s.length();
        int m = t.length();
        if(m < n){
            System.out.println(-1);
            return;
        }
        int minOpt = Integer.MAX_VALUE;
        for(int i = 0; i <= m-n; i++){
            String sub = t.substring(i,i+n);
            int cost = 0;
            for(int j = 0; j < n; j++){
                char c1 = s.charAt(j);
                char c2 = sub.charAt(j);
                cost += charDistance(c1,c2);
            }
            minOpt = Math.min(cost,minOpt);
        }
        System.out.println(minOpt);

    }

    public static int charDistance(char a, char b){
        int diff = Math.abs(a - b);
        return Math.min(diff,26 - diff);
    }
}

全部评论

相关推荐

11-03 18:50
门头沟学院 Java
迷茫的大四🐶:问就是马上到,一周五天,6个月以上,全国可飞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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