我的思路是判断前后两个字符(设为c1,c2)是不是'V''K',不是的话再分别以'V''c2' 和 'c1''K'来进行判断,因为至多修改一个字符,所以留一个flag作为判断是否修改的条件
import java.util.*;
public class Main {
static boolean check(char c1, char c2) {
return c1 == 'V' && c2 == 'K';
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
char[] s = sc.next().toCharArray();
int ans = 0;
boolean flag = true;
for (int i = 0; i < n - 1; i++) {
if(check(s[i], s[i + 1])) {
ans++;
i++;
continue;
}
if(!flag) continue;
if (check('V', s[i + 1])) {
s[i] = 'V';
ans++;
i++;
flag = false;
} else if (check(s[i], 'K')) {
s[i + 1] = 'K';
ans++;
i++;
flag = false;
}
}
System.out.println(ans);
}
}