算法 小红的字符串修改 求解代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out)); StringTokenizer in = new StringTokenizer(br.readLine()); String s= in.nextToken(); in = new StringTokenizer(br.readLine()); String t= in.nextToken(); int min = Integer.MAX_VALUE; for(int i=0;i<=t.length()-s.length();i++){ int count = 0; //截取t中从i开始、长度为s的连续子串x String x = t.substring(i,i+s.length()); for(int j=0;j<s.length();j++){ //26-差值:计算环形绕行的差值(26 个小写字母首尾相连) count+=Math.min(Math.abs(x.charAt(j)-s.charAt(j)), 26-Math.abs(x.charAt(j)-s.charAt(j))); } min=Math.min(min,count); } out.println(min); out.flush(); out.close(); br.close(); }