题解 | 小红的字符串修改-Java

小红的字符串修改

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String s = scanner.nextLine();
        String t = scanner.nextLine();
        scanner.close();
        
        int sLen = s.length();
        int tLen = t.length();
        
        // 因为t的长度不小于s,所以至少有一个可能的子串
        int minOperations = Integer.MAX_VALUE;
        
        // 遍历t中所有与s长度相同的子串
        for (int i = 0; i <= tLen - sLen; i++) {
            int operations = 0;
            // 计算将s转换为当前子串所需的操作次数
            for (int j = 0; j < sLen; j++) {
                char sChar = s.charAt(j);
                char tChar = t.charAt(i + j);
                // 计算两个字符之间的最小替换次数
                operations += minSteps(sChar, tChar);
            }
            // 更新最小操作次数
            if (operations < minOperations) {
                minOperations = operations;
            }
        }
        
        System.out.println(minOperations);
    }
    
    // 计算两个字符之间的最小替换次数
    private static int minSteps(char a, char b) {
        int diff = Math.abs(a - b);
        // 替换可以向前或向后,取较小值
        return Math.min(diff, 26 - diff);
    }
}
    

全部评论

相关推荐

2025-11-26 09:37
山西大学 测试工程师
累死的一条狗:学长你电脑闹鬼了
点赞 评论 收藏
分享
评论
2
收藏
分享

创作者周榜

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