小美有两个长度为只包含小写字母的字符串和,小美定义“两个字符串的匹配度”为中的数量,例如"abacd"和"aabdd"的匹配度就是2。
对于字符串,选择两个索引,交换和。
小美想知道,和的最大字符串匹配度是多少?
第一行输入一个整数
第二行输入一个长度为的字符串。
第三行输入一个长度为的字符串。
输出一个整数,和的最大匹配度。
5 ababc babac
3
import java.util.Scanner; // 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(); String s = in.next(); String t = in.next(); char[] chars = t.toCharArray(); int max = Integer.MIN_VALUE; for (int i = 0; i < chars.length; i++) { for (int j = i + 1; j < chars.length; j++) { if (chars[i] == s.charAt(i)) { continue; } swap(chars, i, j); max = Math.max(max, check(chars, s)); //比较后换回来 swap(chars, i, j); } } System.out.println(max == Integer.MIN_VALUE ? n : max); } private static int check(char[] chars, String s) { char[] charArray = s.toCharArray(); int ans = 0; for (int i = 0; i < charArray.length; i++) { if (chars[i] == charArray[i]) ans++; } return ans; } private static void swap(char[] chars, int i, int i1) { char t = chars[i]; chars[i] = chars[i1]; chars[i1] = t; } }暴力选手