Java 86分
查看原帖
Java 86分
668842
zishqqq楼主2022/12/9 12:00

我的思路是判断前后两个字符(设为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);
    }
}
2022/12/9 12:00
加载中...