米哈游第一题

import java.util.HashMap;
import java.util.Scanner;
import java.util.*;

public class P1 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        int len = str.length();
        int left = 0;
        int right = 0;
        char target = '1';
        int max = 0;
        String pattern = "1807";
        Map<Character, Integer> map = new HashMap<>();
        map.put('1', 0);
        map.put('8', 1);
        map.put('0', 2);
        map.put('7', 3);
        int[][] dp = new int[len][4];

        int start = 0;
        for(start = 0; start < len; start++){
            if(str.charAt(start) == '1'){
                dp[start][0] = 1;
                break;
            }
        }
        for(int i = start + 1; i < len; i++){
            char s = str.charAt(i);
            for(int j = Math.max(map.get(s) - 1, 0); j <= map.get(s); j++){
                for(int k = start; k < i; k++){
                    if(dp[k][j] != 0){
                        dp[i][map.get(s)] = Math.max(dp[i][j], dp[k][j] + 1);
                    }
                }
            }
        }
        for(int i = 0; i < len; i++){
            max = Math.max(max, dp[i][3]);
        }
        System.out.println(max);
    }
}
求大家看下,谢谢啦!#米哈游##笔试题目#
全部评论
好家伙,我看了20分钟没思路直接弃了;做后面的奇数偶数位之和相等 和 中序遍历去了
点赞 回复 分享
发布于 2021-03-28 14:19

相关推荐

我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务