本题用双指针判断左右相等

import java.util.Scanner;

import static java.lang.Math.abs;
import static java.lang.Math.min;

public class Main {
    /**回文串:一个字符串从左往右与从右往左读完全相同*/
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        // 读取输入的字符串
        String s = sc.nextLine();

        // 初始化双指针
        int l = 0;              // l:left左指针,从字符串开始位置
        int r = s.length() - 1; // r:right右指针,从字符串结束位置
        int c = 0;              // c:count计数器,用于统计操作次数

        // 双指针向中间移动
        while (l < r) {
            // 检查左右指针对应的字符是否相等
            if (s.charAt(l) != s.charAt(r)) {
                // 计算两个字符的ASCII值差的绝对值,这是字符在字母表中的直接距离,因为字母是环形排列的,所以两个字符之间有左右两种路径,都计算取最小
                int t = min(abs(s.charAt( l) - s.charAt( r)),
                        26 - abs(s.charAt( l) - s.charAt( r)));
                // 累加到计数器中
                c += t;
            }
            // 移动指针向中间靠拢
            l++;
            r--;
        }
        System.out.println(c);
        sc.close();
    }
}